Hibernate 加入现有的多对多关系
Hibernate Make a join to existing many to many relationship
我有一个 table 有一个多对一关系到一个多对多关系。我想知道如何用 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;
}
那些 table 由以下关系 link 编辑:TR_SOCIETESCONTACTS
这是我的问题。我有一个 table “Imputation
” 必须 link 到一个 TR_SOCIETESCONTACTS
才能引用公司和联系人,但我无法做到。
有人有想法吗?
谢谢:)
如果这符合您的域模型,您可以建立从 Imputation
到 CompanyEntity
或 ContactEntity
的关系......或者 - 我认为这更现实 - 你可以创建一个新实体 CompanyContacts
,它将映射到 TR_SOCIETESCONTACTS
table,从 CompanyEntity
和 ContactEntity
和 [=] 中的每一个与该实体建立多对一关系10=] .. 如果您需要将任何状态字段添加到 TR_SOCIETESCONTACTS
关系本身
,这也是唯一的解决方案
我有一个 table 有一个多对一关系到一个多对多关系。我想知道如何用 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;
}
那些 table 由以下关系 link 编辑:TR_SOCIETESCONTACTS
这是我的问题。我有一个 table “Imputation
” 必须 link 到一个 TR_SOCIETESCONTACTS
才能引用公司和联系人,但我无法做到。
有人有想法吗?
谢谢:)
如果这符合您的域模型,您可以建立从 Imputation
到 CompanyEntity
或 ContactEntity
的关系......或者 - 我认为这更现实 - 你可以创建一个新实体 CompanyContacts
,它将映射到 TR_SOCIETESCONTACTS
table,从 CompanyEntity
和 ContactEntity
和 [=] 中的每一个与该实体建立多对一关系10=] .. 如果您需要将任何状态字段添加到 TR_SOCIETESCONTACTS
关系本身