Я хотел бы связаться, 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; }
}