更新Spring数据JPA在保存父实体的同时对OneToMany映射中的所有实体进行更改

时间:2019-04-25 09:54:06

标签: jpa spring-data-jpa

我在如下所示的一个实体中具有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(); 
}

0 个答案:

没有答案