我在如下所示的一个实体中具有OneToMany关系,并使用SpringDataJpa作为数据访问层。
@Entity
public class StudentSkillRecord {
...
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch=FetchType.EAGER)
@JoinColumn(name = "skill_id")
private List<SkillAssessment> skillAssessments = new ArrayList<SkillAssessment>();
}
每次添加新的SkillAssessment或更改SkillAssessment的列之一时,我都会保留整个StudentSkillRecord。 但是,即使我仅修改其中一个实体,updatedOn列也会针对集合skillAssessments的所有实体进行更新。 有没有办法,我只能更新新的SkillAssessment或修改过的? 我正在使用EntityListiner for SkillAssessment更改审核值,如下所示:
@PrePersist
@PreUpdate
public void onPreMerge() {
this.updatedOn = new Date();
}