如何使用Spring Data JPA审核OneToMany关系中的更改为拥有实体?

Art*_*hur 5 spring-data-jpa

我已成功在实体中设置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);
    ...
}
Run Code Online (Sandbox Code Playgroud)

试图添加@EntityListeners到子实体,没有帮助.

我使用spring-data-jpa 1.9.4和Hibernate 4.3.11作为实现.

小智 -2

作为解决方法,您可以尝试向表添加其他字段并通过 JPA @Version 对其进行注释。

@Version
@Column
private int version;
Run Code Online (Sandbox Code Playgroud)