首页 文章

Hibernate Envers - REVINFO表不存在

提问于
浏览
6

我正在使用Hibernate 4.3.6,我尝试通过将@Audited注释添加到我的@Entity类之一来使用Envers功能 . (envers jar - hibernate-envers-4.3.6.Final.jar - 在我的CLASSPATH上 . )

当我运行我的代码时,在没有@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表有相同的问题 . )

谢谢,Reuven

2 回答

  • 6

    是,请参阅以下内容:第7章 . 您需要REV INFO表和每个实体的审计表,默认情况下名为 _AUD,尽管这是可配置的 . 要自动生成它们,您需要启用Hibernate模式生成 .

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

    我通常针对测试数据库运行模式生成,然后使用某个数据库工具将更改同步到应用程序数据库 .

    有关可用于生成DDL的Ant任务的详细信息,另请参见此处:

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

  • 1

    请仔细检查是否在spring配置文件中添加了 <prop key="hibernate.hbm2ddl.auto">update</prop> 属性 .

    我也有同样的问题,只是通过添加上面的属性来解决它 .

    谢谢 .

相关问题