Предположим, что у меня есть установки, как следующее:Выбор hasMany отображение с GORM в Grails
class User {
static hasMany = [items : Item];
}
class Item {
String name;
}
Я пытаюсь выбрать все Users
, которые имеют в этом hasMany
отображения в Item
. У меня есть идентификатор элемента, и вы хотите найти всех пользователей, которые «имеют» этот элемент.
Есть ли запрос HQL, который я могу выполнить, который будет делать это или еще лучше, встроенную функцию GORM, которая обрабатывает этот запрос?
Предположив это было прямой SQL я бы сделал что-то вроде:
SELECT `user_id` FROM `user_item` WHERE `item_id`=[ID]
Глядя в Н2 я могу написать запрос
SELECT USER_ID FROM USER_ITEM WHERE ITEM_ID=1;
я могу расширить этот SQL, чтобы включить весь пользовательский объект:
SELECT * FROM user, user_item WHERE user_item.item_id=[item id] AND user.id = user_user.user_items_id;