HQL Join Fetch вопрос: ассоциация псевдонимов - PullRequest
0 голосов
/ 13 октября 2009

Учитывая, что у меня есть объект A с коллекцией B, и я хочу получить A со всеми B, которые соответствуют определенным критериям

"from A a left join fetch a.bs c where a.id = ? and c.id = ?"

Вышеуказанное, конечно, не сработает, поэтому после ввода псевдонима c должна быть еще одна выборка, так что это будет правильно

"from A a left join fetch a.bs c join fetch c.id = ? where a.id = ?"

1 Ответ

2 голосов
/ 13 октября 2009

Второй запрос не будет работать из-за неверного синтаксиса. Сначала будет работать, но (я думаю, здесь) не так, как вы хотите.

Я так понимаю, вы хотите выбрать несколько As и заполнить их коллекцию B только B, удовлетворяющими определенным критериям? Ты не можешь Для каждого экземпляра A будет выбрана полная коллекция принадлежащих ей B (за исключением технических последствий, связанных с размерами партий). Это сделано для того, чтобы предотвратить случайное осиротение Bs, если вы решите сохранить свою A обратно с неполным сбором Bs.

Если я неправильно понял, и вы не это имели в виду, уточните ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...