我已经用谷歌搜索了但由于实体中的集合我发现了这个问题(同时是多个行李)。我无法找到根案例。
两个实体在每个实体中都有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映射的每个其他实体的外键。为了减少在两个地方维护外键,我在一个实体中使用了属性映射,但它抛出了异常。这就是现在的问题。
答案 0 :(得分:0)
在课堂上它应该是这样的
@OneToOne
@JoinColumn(name="b_id")
private B b;
在B级,它应该是
@OneToOne(mappedBy="b")
private A a;
这意味着A类有一个列b_id,它引用了B类的ID。而B类的对象是我们正在创建向后引用。