СЛЕДУЕТ ПОДКЛЮЧИТЬ () в JPQL - PullRequest
6 голосов
/ 14 февраля 2011

У меня есть две сущности:

  • User: id: long , имя: String
  • Player:id: long , владелец: Пользователь , очки: int

Теперь я хочу выбрать пользователя и связанного с ним игрока водин запрос JPQL.В SQL я сделал бы это так:

SELECT u.*, p.* FROM User u
LEFT JOIN Player p ON (p.owner_id = u.id)
WHERE u.name = ...

Моим первым инстинктом было сделать это так в JPQL

SELECT u, p FROM User u LEFT JOIN Player p ON (p.owner = u) WHERE u.name = ...

Но я не думаю, что предложение ONподдерживается в JPQL.Однако мне это нужно, потому что User не имеет ссылки на Player (многие вещи, кроме Player, могут быть присоединены к User).Как я могу решить это?

1 Ответ

3 голосов
/ 14 февраля 2011

У вас есть отношение от Player до User, поэтому вы можете инвертировать объединение, чтобы следовать ему:

SELECT u, p FROM Player p RIGHT JOIN p.owner u WHERE ...
...