假设我有如下设置:
class User {
static hasMany = [items : Item];
}
class Item {
String name;
}
我尝试选择Users
映射中Item
的所有hasMany
。我有一个项目的ID,并希望找到“拥有”该项目的所有用户。
我是否可以运行HQL查询来执行此操作或更好的操作,内置GORM函数来处理此查询?
假设这是直接的SQL,我会做类似的事情:
SELECT `user_id` FROM `user_item` WHERE `item_id`=[ID]
在H2中查看我可以编写查询
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;
答案 0 :(得分:2)
这个HQL会起作用:
Item item = ...
Item.executeQuery(
'from User u where :item in elements(u.items)',
[item: item])