java - Envers 是否可以为具有公共(public)映射基类的不同具体派生类提供不同的审核模式?

标签 java hibernate jpa hibernate-envers

我有两个具有相同字段的 JPA 实体,我想将它们存储在不同的表中。因此,我将它们基于抽象的公共(public)映射基类,以避免重复代码。现在我想要审核其中一张表,而另一张则不审核。但是,当我将一个类设置为已审核时,Envers 会为这两个派生类创建一个 _AUD 表。 即使将另一个派生类设置为审核模式NotAudited,也会创建其审核表。 是否可以按照描述进行配置?

我的(简化)类(class):

@MappedBaseClass
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class AbstractPrice {
    // some fields and some methods
}

@Entity
@Audited(targetAuditMode=RelationTargetAuditMode.AUDITED)
public class Price extends AbstractPrice {
}

@Entity
@Audited(targetAuditMode=RelationTargetAuditMode.NOT_AUDITED)
public class OriginalPrice extends AbstractPrice {
}

最佳答案

targetAuditMode 只能用于关系字段。如果您不希望审核实体,只需删除注释即可。

关于java - Envers 是否可以为具有公共(public)映射基类的不同具体派生类提供不同的审核模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23566564/

相关文章:

java - H2索引名称唯一性

java - 如何仅获取与 JPA 中其他 2 个表具有 @OneToMany 关系的父记录

java - 让一个简单的 envers 示例工作起来很困难 : problem #34

java - 如何使聚合 java8 具有特定条件

Java反射无法改变结构

java - 多用户数据源 - Spring + Hibernate

java - Spring Boot 应用程序不会为 JPA @Table 注释创建模式

java - JPA 使用 Map 谓词 ManyToMany

Java 优化了读/写共享资源/内存位置而无需 Atomic API,例如原子整数

java - EJB 的命名异常