我試圖做一個Hibernate Envers實現與Spring,JBoss和Maven的結合。Hibernate Envers與JBoss,Spring和Maven - 不寫審計記錄
我有以下幾點:
- spring.version:3.1.0.RELEASE
- hibernate.version:3.5.0決賽
- log4j.version:1.2.14
- 的JBoss -as-7.1.1.Final
- MySQL數據庫
在pom.xml我已經添加了必需的hiber內特 - 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 db表與相關的數據庫列以及一個REVINFO數據庫表。
當我運行我的代碼時,它使用現有的hibernate實現更新COM_TEST中的記錄。但是沒有任何內容寫入到COM_TEST_AUD或REVINFO數據庫表中。
,我有以下特性在我的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模塊目錄下,它使用休眠,envers-4.0.1.Final.jar:
jboss-as-7.1.1.Final\modules\org\hibernate\envers\main
我已經改變了我的項目的pom.xml是不是3.5.0決賽4.0.1.Final,但它並沒有區別
是否有人可以幫忙嗎?
首先要檢查的是事務設置。你使用什麼樣的交易? Envers聽衆是否在所有人都打電話時堅持一個實體? – adamw