0
所以没有我试过似乎工作。我想有这样的事情:如何将实体A与JPA以一对一的关系两次映射到实体B?
class A {
B foo;
B bar;
}
class B {
A baz;
}
我在课堂上一试了一下如下:
@OneToOne(targetEntity = B.class)
@JoinColumn(name = "foo_id")
@Cascade(CascadeType.ALL)
public B getFoo() {
return foo;
}
@OneToOne(targetEntity = B.class)
@JoinColumn(name = "bar_id")
@Cascade(CascadeType.ALL)
public B getBar() {
return bar;
}
这似乎并没有工作。由于我不明白的原因,我总是以foo_id和bar_id相同的方式结束。
所以当我检查表“A”在我的数据库为一行编号1,我想有:
foo_id = 1
bar_id = 2
,并在表B,我应该有2个实体ID为1和2,其中两个都有baz_id = 1;
而在PortalResourceModel中,您没有参考回到您在此显示的实体? –
我不这样做,因为我在这种情况下对双向关系不感兴趣。但即使我这样做了,它也会有一个'mappedBy'属性来表明我实际上并没有将关联关联两次。而数据库模式仍然只反映在一个地方的关系。 – Jeff
而实际上,现在我正在寻找,那是你的问题。实体B中的baz_id不能同时映射到两个不同的关系。你应该删除它。更详细地更新了我的答案 – Jeff