我與Hibernate Envers更新,我試圖生成audity表,都沒有成功:(...我使用hibernate-core-3.5.6-Final.jar
和hibernate-envers-3.5.6-Final.jar
使用Ant和休眠envers創建audity表
我第一次嘗試是創造。直接audity表中設置hbm2ddl.auto
屬性爲update
我hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
...
<property name="hbm2ddl.auto">update</property>
<property name="hibernate.ejb.event.post-insert">org.hibernate.ejb.event.EJB3PostInsertEventListener,org.hibernate.envers.event.AuditEventListener</property>
<property name="hibernate.ejb.event.post-update">org.hibernate.ejb.event.EJB3PostUpdateEventListener,org.hibernate.envers.event.AuditEventListener</property>
<property name="hibernate.ejb.event.post-delete">org.hibernate.ejb.event.EJB3PostDeleteEventListener,org.hibernate.envers.event.AuditEventListener</property>
<property name="hibernate.ejb.event.pre-collection-update">org.hibernate.envers.event.AuditEventListener</property>
<property name="hibernate.ejb.event.pre-collection-remove">org.hibernate.envers.event.AuditEventListener</property>
<property name="hibernate.ejb.event.post-collection-recreate">org.hibernate.envers.event.AuditEventListene</property>
...
</session-factory>
我的審計類是類似以下內容:
@Entity
@Audited
@Table(name = "EAL_USUS_USUARIOS", uniqueConstraints = @UniqueConstraint(columnNames = {
"BIC_ENTIDAD", "ID_INTERNO_ENTIDAD" }))
public class EalUsusUsuarios implements java.io.Serializable {
但更新命令忽略audity表,所以我試圖創建一個Ant任務生成模式DDL文件,所以在我build.xml
文件中,有一個任務,如:
<target name="schemaexport" description="Exports a generated schema to DB and file">
<echo message="generación schema "/>
<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.EnversHibernateToolTask"
classpath="${CK_JARS}/hibernate-envers-3.5.6-Final.jar"/>
<hibernatetool destdir="${clases.dir}">
<classpath>
<fileset refid="hibernate-envers-3.5.6-Final.jar" />
<path location="${CK_JARS}/" />
</classpath>
<jpaconfiguration persistenceunit="ConsolePU" />
<hbm2ddl
drop="false"
create="true"
export="false"
outputfilename="C:/Desarrollo/versioning-ddl.sql"
delimiter=";"
format="true"/>
</hibernatetool>
</target>
這個配置顯然不工作,因爲我不確定應該在classpath中設置什麼值。我雖然那是envers jar所在的目錄,但我得到了「taskdef類org.hibernate.tool.ant.EnversHibernateToolTask
所需的類無法找到:org/hibernate/tool/ant/HibernateToolTask
」來自ant控制檯的錯誤消息。
任何有關在這兩種方式中的任何一個都存在問題的想法?