我有2个实体A
和B
。两者都通过新实体AB
关联。
public class A {
// other fields
@OneToOne(mappedBy = "a")
private AB ab;
}
public class B {
// other fields
@OneToOne(mappedBy = "b")
private AB ab;
}
public class AB{
// more fields
@ManyToOne
@JoinColumn(name = "a_id")
private A a;
@ManyToOne
@JoinColumn(name = "b_id")
private B b;
}
现在上面的代码有效,但是当我尝试直接从A
到B
添加关系时,我的结果始终为空。
public class A {
// other fields
@OneToOne(mappedBy = "a")
private AB ab;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Set<B> b;
}
答案 0 :(得分:1)
问题是您从一侧使用2
,从另一侧使用@OneToOne
。
您应该在类A和B中使用@ManyToOne
。这很合乎逻辑:如果可以将多个AB连接到A,则在类A中应该有一组AB。
在更改了这些注释之后,您可以立即看到A和B之间的关系为@OneToMany
。