我已在一个实体中成功设置了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作为实现。
答案 0 :(得分:0)
作为解决方法,您可以尝试向表中添加其他字段,并通过JPA @Version对其进行注释。
{{1}}