【问题标题】:Change join table by another entity in JPA通过 JPA 中的另一个实体更改连接表
【发布时间】:2014-01-15 14:16:17
【问题描述】:

我有 3 个表:Person、Phone 和 Person_Phone。 Person_Phone 是 Person 和 Phone 表的 JoinTable。

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

但问题是在插入数据时 jpa 无法为 Person_Phone(Join Table) 生成序列。

我怎样才能实现它??

下面是表结构

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

电话桌:

Phone
--------
phoneID
phoneNumber

Person_Phone 表:

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

【问题讨论】:

  • 到目前为止,映射看起来还不错。您在电话实体中有一个人员字段吗?请添加它,并在您尝试添加实体的位置添加代码并准确描述问题所在。
  • 对不起,kostja。我修改了问题,请检查一次。

标签: hibernate postgresql


【解决方案1】:

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

答案稍长:

常规连接表有一个复合主键,由连接实体的 id 组成,在您的情况下为 personIDphoneID

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多