多对多 - 在连接表和一个表中保存/更新

时间:2016-12-02 19:29:32

标签: java database hibernate jpa many-to-many

Person和Group表之间有很多关系,连接表是PersonGroup。当我保存/删除Person时,它会从Person, PersonGroup and Group表中保存和删除。

我只想删除/保存#34; Person"和#34; PersonGroup"表格并离开Group table untouched. 在查询" Person"时,我应该得到" Group"在Person实体中列出。

所以基本上" Group"是参考表。它应该只读取,组表上没有删除/更新。

我怎样才能做到这一点?

@Entity
@Table(name="Person")
public class Person implements Serializable {
    @Id     
    private long personId;

    @ManyToMany(cascade=CascadeType.ALL)
    @JoinTable(name="PersonGroup", joinColumns=@JoinColumn(name="person_id"), 
    inverseJoinColumns=@JoinColumn(name="group_id"))
    private List<Group> groups;

    }


@Entity
@Table(name="Group")
public class Group implements Serializable {
    @Id
    private long groupId;

    @ManyToMany(mappedBy="groups")
    private List<Person> persons;

}

0 个答案:

没有答案