【发布时间】:2015-05-05 09:09:43
【问题描述】:
我在Person 和Address 表之间有多对多关系。
人:
@Entity
@Table(name = "PERSON_MTM", schema = "Examples")
public class Person
{
@Id
@Column(name = "PERSON_ID")
private String personId;
@Column(name = "PERSON_NAME")
private String personName;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "PERSON_ADDRESS", schema = "KunderaExamples",joinColumns = { @JoinColumn(name = "PERSON_ID") }, inverseJoinColumns = { @JoinColumn(name = "ADDRESS_ID") })
private Set<AddressMTM> addresses;
//setters and getters
}
地址:
@Entity
@Table(name = "ADDRESS_MTM", schema = "Examples")
public class Address
{
@Id
@Column(name = "ADDRESS_ID")
private String addressId;
@Column(name = "STREET")
private String street;
// setters and getters
}
我有一个名为 PERSON_ADDRESS 的 joinTable。
- 我可以将非 Id 字段添加到连接表吗?
- 里面有没有 JPA 约束?
注意:我的问题不是
Hibernate。我在问 代表JPA 2.1
【问题讨论】:
-
你说的JPA约束是什么意思?
-
@swinkler JPA 约束意味着是否有任何文档建议或强制仅使用 Id 字段。
-
我将 API 链接添加到 JoinTable/joinColumns,您可以在其中看到 JPA 没有任何限制。
-
连接表的列将是双方的id列。这就是全部。如果您想要“其他”列,则创建一个中间实体(如 Stackoverflow 上有关该主题的许多其他帖子所示)
标签: java jakarta-ee jpa orm jpa-2.1