這個問題探討瞭如何通過自定義字段跟踪Hibernate Envers跟踪的標準修訂信息。 默認情況下,Envers提供了諸如修訂號,時間戳和負責更改的用戶之類的信息。但是,通常您需要將其他特定於上下文的數據與這些標準字段一起存儲。 這是通過創建擴展默認Envers修訂實體的自定義修訂實體來實現的。 這使您可以添加自己的屬性,從而提供更豐富的審核步道。 我們將在以下各節中探討如何有效實現此功能。
org.hibernate.envers.DefaultRevisionEntity
以添加自定義數據,您需要創建一個擴展Hibernate提供的默認ENVER ENVER ENVERS的自定義修訂實體。 假設您的默認修訂實體為CustomRevisionEntity
。 您將創建一個新的實體,例如DefaultRevisionEntity
>,該實體擴展
<code class="java">@Entity @Audited @Table(name = "REVINFO") public class CustomRevisionEntity extends DefaultRevisionEntity { @Column(name = "application_name") private String applicationName; @Column(name = "client_ip") private String clientIp; // Add other custom fields as needed... // Getters and setters for all fields // ... }</code>
CustomRevisionEntity
>> applicationName
>>>>>>>>clientIp
>此代碼在兩個其他字段中定義了a@Entity
:@Audited
。 請記住添加必要的Getters和Setter。 @Table
,@Table(name = "REVINFO")
>註釋對於冬眠識別和管理該實體作為Envers修訂實體至關重要。 REVINFO
>註釋假定您的修訂信息存儲在名為
revisionEntityClass
>至關重要的是,您需要配置Hibernate Envers來使用您的自定義修訂實體。 這通常是通過在Hibernate配置中設置hibernate.cfg.xml
>屬性(例如
<code class="xml"><property name="org.hibernate.envers.revision_entity_class" value="com.yourpackage.CustomRevisionEntity" /></code>屬性。 在此配置之後,Envers將使用您的自定義實體存儲修訂信息,包括您添加的自定義字段。
com.yourpackage.CustomRevisionEntity
>在擴展Hibernate Envers修訂元數據的最佳實踐是什麼?
以上是Hibernate Envers - 使用自定義字段擴展修訂信息的詳細內容。更多資訊請關注PHP中文網其他相關文章!