一对一映射的mappyBy属性创建异常:无法同时获取多个行李

时间:2015-07-23 06:27:09

标签: java hibernate jpa

我已经用谷歌搜索了但由于实体中的集合我发现了这个问题(同时是多个行李)。我无法找到根案例。

两个实体在每个实体中都有oneToOne映射 当我将map属性映射到一个实体时,它创建的不能同时获取多个行李问题。

如果我删除mappedBy属性,那么代码工作正常。

下面是代码示例

Class A.java

@OneToOne
private B b;

@OneToOne
private C c;

班级B.java

@OneToOne(mappedBy="b")  
private A a;

[EDITED] 以下是A级和A级的最新签名。 B.现在它也有效。 但是如果我在B类中为类型A添加映射的By,则会发生异常。

Class A.java

@OneToOne(cascade=CascadeType.ALL,orphanRemoval=true,fetch=FetchType.LAZY)
private B b;

@OneToOne
private C c;

班级B.java

@OneToOne(fetch=FetchType.LAZY) 
private A a;

异常仍然存在,不知道为什么?目前,在每个实体中维护OneToOne映射的每个其他实体的外键。为了减少在两个地方维护外键,我在一个实体中使用了属性映射,但它抛出了异常。这就是现在的问题。

1 个答案:

答案 0 :(得分:0)

在课堂上它应该是这样的

@OneToOne
@JoinColumn(name="b_id")
private B b;

在B级,它应该是

@OneToOne(mappedBy="b")  
private A a;

这意味着A类有一个列b_id,它引用了B类的ID。而B类的对象是我们正在创建向后引用。