这个问题探讨了如何通过自定义字段跟踪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中文网其他相关文章!