Условие пользовательского соединения Hibernate при ассоциации

Я хотел бы связать 2 объекта, используя аннотации спящего режима, с пользовательским предложением соединения. Предложение относится к обычному равенству FK / PK, но также и к тому, где FK является нулевым. В SQL это будет примерно так:

join b on a.id = b.a_id or b.a_id is null 

Из того, что я прочитал, я должен использовать аннотацию @WhereJoinTable на объекте владельца, но я озадачен тем, как я определяю это условие … особенно первую его часть – ссылаясь на идентификатор соединительной сущности.

У кого-нибудь есть пример?

Вот пример, использующий стандартную парадигму родителя / ребенка, которая, как мне кажется, должна работать с использованием основной аннотации @Where.

 public class A { ... @ManyToOne(fetch = FetchType.EAGER) // EAGER forces outer join @JoinColumn(name = "a_id") @Where(clause = "a_id = id or a_id is null") // "id" is A's PK... modify as needed public B getB() { return b; } } public class B { ... @OneToMany(mappedBy = "b") public List<A> getA() { return a; } }