Hibernate对现有的多对多关系进行连接

时间:2018-02-19 08:51:21

标签: java hibernate jpa relational-database

我有一张与多对多关系有多对一关系的桌子。我想知道如何使用Hibernate注释表示,无法找到任何可以帮助我的东西。

以下是我的课程:

CompanyEntity.java:

@Entity
@Table(name="TR_SOCIETES")
public class CompanyEntity {

    @Id
    @Column(name="Id")
    private String _id;
    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(
            name="TR_SOCIETESCONTACTS",
            joinColumns = {@JoinColumn(name="Societe")},
            inverseJoinColumns = {@JoinColumn(name="Contact")}

    )
    private Collection<ContactEntity> _contacts;
}

ContactEntity.java:

@Entity
@Table(name="TR_CONTACTS")
public class ContactEntity {
    @Id
    @Column(name = "Id")
    private String _id;

    @ManyToMany(mappedBy = "_contacts")
    private Collection<CompanyEntity> _companies;
}

Thoses表由以下关系链接:TR_SOCIETESCONTACTS

这是我的问题。我有一张桌子&#34; Imputation&#34;必须链接到一个TR_SOCIETESCONTACTS才能引用公司和联系人,但我无法做到这一点。

有人有想法吗?

谢谢:)

1 个答案:

答案 0 :(得分:0)

如果符合您的域名模式,您可以建立从ImputationCompanyEntityContactEntity的关系......或者 - 我认为这更为现实 - 您可以制作一个将映射到CompanyContacts表的新实体TR_SOCIETESCONTACTS,从CompanyEntityContactEntity以及Imputation中的每一个与该实体建立多对一关系..这如果您需要将任何州字段添加到TR_SOCIETESCONTACTS关系本身

,它也将是唯一的解决方案