0

我有以下像冠军一样工作的 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]
}
4

1 回答 1

3

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

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])
于 2012-05-29T21:58:54.727 回答