JPA - Написание запроса на соединение с двумя внешними ключами - PullRequest
0 голосов
/ 05 августа 2020

У меня есть 2 объекта:

@Entity
@Table(name = "HOUSE")
public class House {
  //other fields
  @ManyToOne
  @JoinColumn(name = "OWNER_1", referencedColumnName = "OWNER_ID")
  private Owner owner1;

  @ManyToOne
  @JoinColumn(name = "OWNER_2", referencedColumnName = "OWNER_ID")
  private Owner owner2;
}

@Entity
@Table(name = "OWNER")
public class Owner {
  @Id
  @Column(name = "OWNER_ID")
  private String id;
}

У меня есть запрос SQL для объединения двух таблиц:

select a.*, b.* from HOUSE a INNER JOIN OWNER b on a.OWNER_1 = b.OWNER_ID or a.OWNER_2 = b.OWNER_ID

Но я не знаю, как его написать в запросе JPA. Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 05 августа 2020

Запрос JPA будет очень похож:

select a, b 
from House a, Owner b 
where a.owner1.id= b.id or a.owner2.id = b.id

Просто имейте в виду, что результатом запроса будет List<Object[2]>, который вы должны проанализировать самостоятельно.

...