Mysql GORM:子查询为空的查询

Mysql GORM:子查询为空的查询,mysql,hibernate,grails,gorm,Mysql,Hibernate,Grails,Gorm,情景: 我有两个域名豆书和作者。 作者和这本书有一对多的联系 我希望今年没有写书的作者这不是真实的情况: 这是我的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标准 编辑: 更明确:我需

情景:

我有两个域名豆书和作者。 作者和这本书有一对多的联系

我希望今年没有写书的作者这不是真实的情况:

这是我的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标准

编辑:

更明确:我需要等效的Grails标准。 我有很多书和作者的记录。Gorm查询必须是高性能的。
像这样的事情应该适合你;由于排序的原因,它可能会有点慢,但是如果你的书的数量相对较少,它应该不会有太大的影响

def targetDate = // define your date here.
def lazyAuthors = Author.findAll{
   books.sort{it.requestDate}[books.size()-1] > targetDate
}

**编辑**事实证明你不能查询瞬态,所以我最初的想法不起作用,但是我用来获取最新书籍的技术应该起作用。

我解决了问题,但没有使用标准。 我使用了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")

我尝试过,但Grails说:没有方法签名:Grails.gorm.DetachedCriteria.mostRecentBook适用于参数类型:。。。但是,即使它有效,我也担心性能:/好吧,我觉得不好意思,我会修改我的答案以反映这些信息。不幸的是,我现在没有时间测试答案,而是基于我对查询的理解等。。这应该能正常工作。谢谢。不幸的是,我有很多书和作者记录了我的错误:我没有在我的问题中详细说明;我编辑它。但是我决定使用HQL查看我的答案。