情景:
我有两个域bean书和作者。 作者与Book有一对多的关联。
我想要今年没有书面书籍的作者(这不是真实的情景:))
这是我的MySQL查询:
SELECT * FROM author AS a
WHERE
(SELECT COUNT(b.id)
FROM book AS b
WHERE b.author_id = a.id
AND b.releaseDate > '2014-01-01'
) = 0
如何将其转换为 Hibernate / Grails标准?
修改:
答案 0 :(得分:0)
这样的事情对你有用;由于分类,它可能会有点慢,但如果您的书籍数量相对较少,它不应该产生巨大的影响。
def targetDate = // define your date here.
def lazyAuthors = Author.findAll{
books.sort{it.requestDate}[books.size()-1] > targetDate
}
**编辑** 事实证明,您无法查询瞬态,因此我原来的想法不起作用,但是我用来获取最新书籍的技术应该可行。
答案 1 :(得分:0)
我解决了,但没有使用标准。 我用过HQL:
def authors = Author.findAll("\
SELECT * FROM author AS a \
WHERE \
(SELECT COUNT(b.id) \
FROM a.books AS b \
WHERE b.releaseDate > '2014-01-01' \
) = 0")