Будьте в спящем режиме пользовательский пункт соединения на ассоциации

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

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

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

У кого-либо есть пример?

6
задан mysomic 10 May 2010 в 18:25
поделиться

1 ответ

Вот пример использования стандартной парадигмы родитель / потомок, которая, на мой взгляд, должна работать с использованием базовой аннотации @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; }
}
19
ответ дан 8 December 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: