在JPA中由另一个实体更改连接表

时间:2014-01-15 14:16:17

标签: hibernate postgresql

我有3个表:Person,Phone和Person_Phone。 Person_Phone是个人和电话表的JoinTable。

这三个表都有一个主键。(PostgresSQL序列)。我想使用JPA或hibernate注释来映射它。我知道使用@JoinTable来映射这种关系。

但问题是插入数据时jpa无法生成Person_Phone(连接表)的序列。

我怎样才能实现呢?

以下是表格结构

Person
-------------
personID(PK)
personName
.....

电话表:

Phone
--------
phoneID
phoneNumber

Person_Phone表:

 Person_Phone
 -----------------
 id(PK)
 personID(FK)
 phoneID(FK)

1 个答案:

答案 0 :(得分:0)

简答:您不需要连接表的序列。删除它。

答案稍长:

常规联接表的复合主键包含已加入实体的ID,在您的情况下为personIDphoneID

从表定义中删除id列,或者让hibernate为您生成表定义,并根据需要对其进行调整。