我有一个@Entity
Parent
,它与Child
实体具有一对多的关系。
使用org.hibernate.envers.Audited
审核父实体。
@Entity
@EntityListeners(AuditingEntityListener.class)
@Audited
@Table(name = "PARENT")
public class Parent extends AuditEntity implements Serializable {
@OneToMany(
mappedBy = "parent",
fetch = FetchType.LAZY,
cascade = CascadeType.ALL
)
private Set<Child> childSet;
}
Child
实体只是一个字典表,不需要审核。
@Entity
@EntityListeners(AuditingEntityListener.class)
@Table(name = "CHILD")
public class Child extends AuditEntity implements Serializable {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "parent_id", nullable = false)
@JsonIgnore
private Parent parent;
}
如果我按原样执行此代码,则会抛出Caused by: org.hibernate.MappingException: An audited relation from Parent to a not audited entity Child
我在网上发现了两个选择:要么在@NotAudited
关系上使用@OneToMany
,要么将Child
实体类标记为@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
。
但是我不确定最适合我的要求。
请提出建议。