我已成功在实体中设置 JPA 审计。只要实体本身的数据发生变化,它就可以正常工作。但是,该实体包含一个@OneToMany 集合,我想要拥有实体的 @LastModifiedBy
字段也会在仅子行更改时更新。如果可能,我不想为每一行添加审计字段。
父级关系的定义:
@Entity
@EntityListeners(AuditingEntityListener.class)
public class DataHead {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@CreatedBy
private String creatorUser;
@CreatedDate
private Date createdDate;
@LastModifiedBy
private String modifierUser;
@LastModifiedDate
private Date modifiedDate;
@OneToMany(mappedBy="dataHead", cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval=true)
@Fetch(FetchMode.SUBSELECT)
@Valid
private List<DataRow> rows = new AutoPopulatingList<DataRow>(DataRow.class);
...
}
尝试添加
@EntityListeners
到子实体,没有帮助。我使用 spring-data-jpa 1.9.4 和 Hibernate 4.3.11 作为实现。
最佳答案
作为解决方法,您可以尝试向表中添加其他字段并通过 JPA @Version 对其进行注释。
@Version
@Column
private int version;
关于spring-data-jpa - 如何使用 Spring Data JPA 将 OneToMany 关系中的更改审计为拥有实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38174508/