Java 一对一映射';s mappyBy属性创建异常:无法同时提取多个行李

Java 一对一映射';s mappyBy属性创建异常:无法同时提取多个行李,java,hibernate,jpa,Java,Hibernate,Jpa,我已经在谷歌上搜索过了,但我发现这个问题(同时有多个包)是由于实体中的集合。我无法找到根案例 两个实体在每个实体中有一个映射。 当我将mapped by attribute放在一个实体中时,它创建的实体无法同时获取多个包 若我删除mappedBy属性,那个么代码就可以正常工作 下面是代码示例 类A.java @OneToOne private B b; @OneToOne private C c; @OneToOne(cascade=CascadeType.ALL,orphanRemoval

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

两个实体在每个实体中有一个映射。
当我将mapped by attribute放在一个实体中时,它创建的实体无法同时获取多个包

若我删除mappedBy属性,那个么代码就可以正常工作

下面是代码示例

类A.java

@OneToOne
private B b;

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

@OneToOne
private C c;
类B.java

@OneToOne(mappedBy="b")  
private A a;
@OneToOne(fetch=FetchType.LAZY) 
private A a;
[已编辑] 下面是A类和B类的最新签名。现在它也可以工作了。 但是,如果我在类B中为类型A添加mapped By,则会发生异常

类A.java

@OneToOne
private B b;

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

@OneToOne
private C c;
类B.java

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

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

在课堂上应该是这样的

@OneToOne
@JoinColumn(name="b_id")
private B b;
B班应该是

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

这意味着类A有一个列b_id,它引用类b的id。而类b的对象A我们只是在创建反向引用。

在类中,它应该是这样的

@OneToOne
@JoinColumn(name="b_id")
private B b;
B班应该是

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

这意味着类A有一个列b_id,它引用类b的id。而类b的对象A我们只是在创建反向引用。

默认情况下,在OneTONE映射中,联接列将添加到变量的名称中。若您想覆盖表中的列名,那个么@joinColumn是必需的。正确的,但您的@OneToOne(mappedBy=“a”)是错误的,只是为了理解,我添加了它。异常仍然存在,不知道为什么?。目前,在每个实体中维护每个其他实体的OneTONE映射外键。为了减少外键在两个位置的维护,我在一个实体中使用了mapped by attribute,但它抛出了异常。这就是现在的问题。您可以附加一个异常吗?在OneTONE映射中,默认情况下,将在变量名称中添加join列。若您想覆盖表中的列名,那个么@joinColumn是必需的。正确的,但您的@OneToOne(mappedBy=“a”)是错误的,只是为了理解,我添加了它。异常仍然存在,不知道为什么?。目前,在每个实体中维护每个其他实体的OneTONE映射外键。为了减少外键在两个位置的维护,我在一个实体中使用了mapped by attribute,但它抛出了异常。这就是现在的问题。你能附加一个例外吗?