Hibernate 从SQL转换为HQL

Hibernate 从SQL转换为HQL,hibernate,grails,hql,Hibernate,Grails,Hql,我有一个类似champ的SQL查询: select u.id from morder_item mi join book b on b.id = ${book.id} join book_product bp on bp.book_id = b.id join morder mo on mo.id = mi.morder_id join user u on u.id = mo.user_id where mi.book_product_id = bp.id 我试图将其转换为HQL,但问题是我看

我有一个类似champ的SQL查询:

select u.id
from morder_item mi
join book b on b.id = ${book.id}
join book_product bp on bp.book_id = b.id
join morder mo on mo.id = mi.morder_id
join user u on u.id = mo.user_id
where mi.book_product_id = bp.id
我试图将其转换为HQL,但问题是我看到的所有示例都过于简单,根本不处理连接。我需要获取所有用户ID,但查询来自MOrderItem域。感谢您的帮助

更新:为了帮助进行转换的人员:

class MOrder {
  static hasMany = [items: MOrderItem]
  static belongsTo = [user: User]
}

class MOrderItem {
  BookProduct bookProduct
  static belongsTo = [morder: MOrder]
}

class User {
  static hasMany = [morders: MOrder]
}

class BookProduct {
  static belongsTo = [book: Book]
}

这似乎适用于一些人为的数据:

def userIds = AnyDomainClass.executeQuery('''
   select u.id
   from User u join u.morders mo
               join mo.items mi
   where mi.bookProduct.book=:book
   ''',
   [book: book])

这似乎适用于一些人为的数据:

def userIds = AnyDomainClass.executeQuery('''
   select u.id
   from User u join u.morders mo
               join mo.items mi
   where mi.bookProduct.book=:book
   ''',
   [book: book])

谢谢你,伯特!非常感谢你的帮助。谢谢伯特!非常感谢你的帮助。