小编典典

@OneToMany没有逆关系并且没有联接表?

hibernate

这与“没有单独的联接表的hibernate@OneToMany”类似,因为我需要一个没有联接表的@OneToMany关系。但是,我也不想定义逆关系。删除相反的内容似乎会导致自动生成联接表…是否有解决方法?


阅读 310

收藏
2020-06-20

共1个答案

小编典典

在JPA 2.0+中,您可以使用@JoinColumn作为避免生成联接表的方法。

尝试一下。

@OneToMany
@JoinColumn(name="COLUMN_NAME")

更新

上面提供的信息摘自EJB 3.0o’illy书(查找@JoinColumn批注引用了PHONE表中的CUSTOMER_ID列)。但是,普通的JPA1.0规范不支持此功能。它说的是

可以使用一对多外键映射来实现单向一对多关系,但是,此版本中不需要这种支持。希望对一对多关系使用外键映射策略的应用程序
应使这些关系双向以确保可移植性

因此 在1.0中,它是特定于供应商的实现 (这很有意义,作者在JBoss工作-hibernate背后的红帽分歧)

但是 它受到JPA 2.0实现的支持

如果联接用于使用外键映射策略的单向OneToMany映射, 则外键在目标实体的表中

2020-06-20