Весна один ко многим всегда пуста - PullRequest
0 голосов
/ 27 января 2019

У меня есть 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;
}

1 Ответ

0 голосов
/ 27 января 2019

Проблема в том, что вы используете @OneToOne с одной стороны и @ManyToOne с другой стороны.

Вы должны использовать @OneToMany в классах A и B. Что вполне логично: если несколькоAB может быть подключен к A, тогда должен быть набор AB в классе A.

И после изменения этих аннотаций вы сразу увидите, что отношение между A и B равно @ManyToMany.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...