属于其成员实体后面的表的外键的JPA JoinColumn
我有表属于其成员实体后面的表的外键的JPA JoinColumn,jpa,foreign-keys,Jpa,Foreign Keys,我有表表a和表b和外键表a\u id引用表a中的主键id 现在我有两个JPA实体,A和BA包含对B的引用 public class A { ... @JoinColumn(name="table_a_id") private B b; } 这会引发异常,说明在表a中找不到列表a\u id。我知道JPA正在表a中查找外键表a\u id,但如何在不将外键移动到表a的情况下解决此问题?您可以在a中使用@OneToOne(mappedBy=“a”),在B中使用@OneToO
表a
和表b
和外键表a\u id
引用表a
中的主键id
现在我有两个JPA实体,A
和B
<代码>A包含对B
的引用
public class A {
...
@JoinColumn(name="table_a_id")
private B b;
}
这会引发异常,说明在
表a
中找不到列表a\u id
。我知道JPA正在表a
中查找外键表a\u id
,但如何在不将外键移动到表a
的情况下解决此问题?您可以在a
中使用@OneToOne(mappedBy=“a”)
,在B
中使用@OneToOne
连接列。关系的拥有方是外键所在的一方,在本例中是B
<代码>“a”
在mappedBy中是类B
中类型a
字段的名称
public class A {
...
@JoinColumn(name="table_a_id")
private B b;
}
编辑
在单向关系的情况下,当外键位于目标表中时,根据,如果将
insertable=false
和updateable=false
放在@JoinColumn
中,这将指示JPA提供商在目标表中查找外键。我知道这种关系,但如果可能的话,我特别不想让B
知道A
的存在。请参阅更新的答案,实际上正是@AlanHay在发布的链接中建议的。