我正在尝试结合 Spring、JBoss 和 Maven 来实现 Hibernate Envers。
我有以下内容:
- spring.version: 3.1.0.RELEASE
- hibernate.version:3.5.0-Final
- log4j.版本:1.2.14
- jboss-as-7.1.1.Final
- mysql数据库
在 pom.xml 中,我添加了所需的 hibernate-envers:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>${hibernate.version}</version>
</dependency>
在我的 Hibernate 持久性类中,我正在导入以下内容
import org.hibernate.envers.Audited;
所以看起来像
@Entity
@Indexed
@Audited
@Table(name = "COM_TEST")
public class MyTest extends AbstractReferenceDataObject { ...
我确保有一个带有相关数据库列的 COM_TEST_AUD 数据库表以及一个 REVINFO 数据库表。
当我运行我的代码时,它使用现有的休眠实现来更新 COM_TEST 中的记录。但是没有任何内容写入 COM_TEST_AUD 或 REVINFO db 表。
我的 persistence.xml 中有以下属性
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
<property name="hibernate.connection.autocommit" value="true" />
<property name="hibernate.hbm2ddl.auto" value="validate"/>
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.SingletonEhCacheProvider"/>
<property name="hibernate.search.default.directory_provider" value="org.hibernate.search.store.FSDirectoryProvider"/>
<property name="hibernate.search.default.indexBase" value="./lucene/indexes"/>
<property name="hibernate.search.default.batch.merge_factor" value="10"/>
<property name="hibernate.search.default.batch.max_buffered_docs" value="10"/>
</properties>
我已经尝试了几乎所有我能想到的东西。我可以看到当我启动 JBoss 时,它确实说明了它是如何需要和优化 COM_TEST_AUD 和 REVINFO,所以看起来是这样的。
我只是无法弄清楚为什么它不会写入数据库。日志文件中没有写入任何内容,我将日志记录设置为:
<logger category="org.hibernate">
<level name="DEBUG"/>
</logger>
我注意到在下面的 JBoss 模块目录中,它使用了 hibernate-envers-4.0.1.Final.jar:
jboss-as-7.1.1.Final\modules\org\hibernate\envers\main
我已将我的项目 pom.xml 更改为 4.0.1.Final 而不是 3.5.0-Final,但这并没有什么不同
有人可以帮忙吗?