Hibernate - сопоставить несколько внешних ключей на одной таблице - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть одна сущность с двумя внешними ключами в одной таблице, например:

class A {
    B _source;
    B _target;
}
class B {
    List<A> _as;
}

Мой вопрос: как сопоставить все "как" по источнику и цели?Я использую Hibernate 4

1 Ответ

0 голосов
/ 20 декабря 2018

Вы не можете отобразить все, но вы можете достичь чего-то вроде этого:

public class A {
    @ManyToOne
    B _source;

    @ManyToOne
    B _target;
}

public class B {
    @OneToMany(mappedBy = "_source")
    List<A> sources;

    @OneToMany(mappedBy = "_target")
    List<A> targets;

    public List<A> getSources() {
        return sources;
    }

    public List<A> getTargets() {
        return targets;
    }

    public List<A> getAll() {
        return Stream.concat(getSources().stream(), getTargets().stream()).collect(Collectors.toList());
    }

}

с помощью метода getAll.(Вам также может понадобиться применить distinct к этому потоку)

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