Были обучение Hibernate, Spring и JPA на прошлой неделе и застрял на том, чтобы создать критерии для следующего сценария:Hibernate Критерии с автообъединение
Скажем, у меня есть 2 таблицы:
игры
- ID
PlayedGame
- ID
- account_ref -> ссылка на некоторую таблицу счета
- game_id -> Ссылка на игру отображение
Entity:
Game {
@id
Long id;
@OneToMany(mappedBy = "game")
Set<Player> players;
}
PlayedGame {
@id
Long id;
Long account_ref;
@ManyToOne
@JoinColumn(name = "game_id", referencedColumnName = "id")
Game game;
}
Теперь я хочу, чтобы запросить для следующего сценария: - Я хочу найти все игры определенного игрока (P) играл, где игрок (A) был его частью. Более конкретно, что два человека, принадлежащих к одной и той же игре
В SQL это можно было бы сделать что-то вроде (что запрос должен быть):
SELECT DISTINCT p1.* FROM Player as p1
INNER JOIN Player as p2 ON p1.game_id=p2.game_id
WHERE p1.account_ref=P AND p2.account_ref=A
Может ли это быть сделано аккуратно с критериями в Hibernate?
Зависит от ваших сопоставлений сущностей и, поскольку вы их не разместили ..... –
Создал привязку объекта сейчас – mrmjauh
Друг-часть очень неоднозначна, вы говорите, что два человека, принадлежащих к одной игре? – Mudassar