停止具有多对多关系的重复条目

时间:2018-06-14 13:42:21

标签: hibernate jpa spring-batch

我遇到以下多对多关系的问题

两个实体Person and Group

在人物中的映射

@ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name = "person_group",
        joinColumns = {@JoinColumn(name = "person_id")},
        inverseJoinColumns = {@JoinColumn(name = "group_id")})
private Set<Group> groups = new HashSet<>();

组中的映射

@ManyToMany(mappedBy = "groups" , fetch = FetchType.LAZY, cascade = {CascadeType.MERGE})
@JsonIgnore
public Set<Person> getPeople() {
    if (people == null){
        people = new HashSet<>();
    }
    return people;
}

我们有一个用于插入,更新人员的春季批处理作业

一开始我们使用原始sql来保存所有潜在的组,因为这是预定义的参考数据。

对于每个人,我们按ID获得一个组,并在两个方向上关联人员和组。

在批处理作业结束时,我们保存并刷新人员列表。

问题是我们最终会在Group表中找到重复的条目。

非常感谢任何帮助。

由于

0 个答案:

没有答案