春季一对多总是空的

时间:2019-01-27 06:10:49

标签: java spring spring-boot spring-data-jpa spring-data

我有2个实体AB。两者都通过新实体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;
}

现在上面的代码有效,但是当我尝试直接从AB添加关系时,我的结果始终为空。

public class A {
    // other fields
    @OneToOne(mappedBy = "a")
    private AB ab;

        @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
        private Set<B> b;
}

1 个答案:

答案 0 :(得分:1)

问题是您从一侧使用2,从另一侧使用@OneToOne

您应该在类A和B中使用@ManyToOne。这很合乎逻辑:如果可以将多个AB连接到A,则在类A中应该有一组AB。

在更改了这些注释之后,您可以立即看到A和B之间的关系为@OneToMany