2014-10-06 15 views
6

Utilizzo Hibernate 4.3.6 e ho provato a utilizzare la funzionalità Envers aggiungendo l'annotazione @Audited a una delle mie classi @Entity. (Il barattolo envers - hibernate-envers-4.3.6.Final.jar - si trova sul mio CLASSPATH.)Hibernate Envers - La tabella REVINFO non esiste

Quando eseguo il mio codice, che funziona bene persistendo senza l'annotazione @Audited, ottengo un org.hibernate. exception.SQLGrammarException:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dbname.REVINFO' doesn't exist 

non vedo alcuna documentazione di dover creare la tabella REVINFO, quindi mi piacerebbe pensare che sarebbe stato creato automaticamente, ma che non sembra accadere. Mi sto perdendo qualcosa?

(Se creo manualmente, come per lo schema descritto qui - http://thinkinginsoftware.blogspot.co.il/2011/03/auditing-entities-with-hibernate-jpa.html -. Allora ottengo un'eccezione che * _AUD non esiste Credo di avere la stessa domanda su tutti i * _AUD tabelle.)

Grazie, Reuven

risposta

6

Sì, vedere qui sotto: capitolo 7. è necessario il tavolo REV INFO e una tabella di controllo per entità, per impostazione predefinita denominata {nome} entità _AUD anche se questo è configurabile. Per averli generati automaticamente è necessario abilitare la generazione dello schema di Hibernate.

http://docs.jboss.org/envers/docs/

Normalmente io eseguo Generazione di uno schema con un database di prova e quindi sincronizzare le modifiche oltre al database dell'applicazione utilizzando qualche strumento DB.

vedi anche qui per i dettagli di un compito Ant che può essere utilizzato per generare il DDL:

http://docs.jboss.org/hibernate/core/4.1/devguide/en-US/html/ch15.html#envers-generateschema

+0

Grazie, Alan! Questo mi ha davvero aiutato. – rweiser

+0

Va bene. Dovresti accettare la risposta: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

+0

Questa è la vecchia posizione per la documentazione di Envers. Dovresti usare questo http://docs.jboss.org/hibernate/orm/4.3/devguide/en-US/html/ch15.html – Dkyc

1

Inserisci nuovamente verificate aver aggiunto <prop key="hibernate.hbm2ddl.auto">update</prop> proprietà nel file di configurazione di primavera.

Ho avuto lo stesso problema e l'ho risolto aggiungendo la proprietà precedente.

Grazie.