2014-10-06 72 views
6

我正在使用Hibernate 4.3.6,並試圖通過將@Audited註釋添加到我的@Entity類之一來使用Envers功能。 (envers jar - hibernate-envers-4.3.6.Final.jar - 位於我的CLASSPATH上。)Hibernate Envers - REVINFO表不存在

當我運行我的代碼時,該代碼在沒有@Audited批註的情況下很好地持久化,我得到一個org.hibernate。 exception.SQLGrammarException:

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

我沒有看到任何文件大約有創建REVINFO表,所以我相信它會被自動創建,但似乎並沒有發生。我錯過了什麼嗎?

(如果我手動創建,按照該模式在這裏描述 - http://thinkinginsoftware.blogspot.co.il/2011/03/auditing-entities-with-hibernate-jpa.html - 然後我得到的是* _AUD不存在例外,我想我對所有的* _AUD表同樣的問題。)

謝謝, 魯文

回答

6

是的,看下面:章7.您需要的REV INFO表和每個實體的審計表,由名爲{實體名稱} _AUD雖然這是可配置的默認值。要讓它們自動生成,您需要啓用Hibernate模式生成。

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

我正常運行模式生成針對測試數據庫,然後同步到應用程序數據庫使用一些工具DB在變化。

也看到這裏的一個Ant任務,你可以用它來生成DDL的細節:

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

+0

謝謝,艾倫!這真的有幫助。 – rweiser 2014-10-07 06:47:20

+0

好吧。您應該接受以下答案:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – 2014-10-07 08:43:40

+0

這是Envers文檔的舊位置。你應該使用這個http://docs.jboss.org/hibernate/orm/4.3/devguide/en-US/html/ch15.html – Dkyc 2014-11-10 00:30:45

1

請重新檢查您的spring配置文件中添加 <prop key="hibernate.hbm2ddl.auto">update</prop>財產。

我也有同樣的問題,只是通過添加上述屬性解決它。

謝謝。

相關問題