hibernate - Grails单向多对一和标准

标签 hibernate grails gorm

有什么办法可以查询(标准)单向多对一关系中一侧受限的多方列表


class Batch {

    String name
    Date date

}


class Record {
    String type
    Batch batch
}

class RecordDetails {
   String xx
   Record record
}

无论如何,是否有条件查询所有批次记录,其中batch.date = xx,而record.type = yy和recordDetails.xx = zz

HQL应该可以工作,但是除了查询中的条件以外,还有其他方法可以使用。

最佳答案

如果没有查询的地方查询和分离的条件,则一个选项将使用sqlRestriction,如下所示:

Batch.withCriteria {
    sqlRestriction """
        exists (
            select * from record r
            join record_details rd on rd.record_id = r.id 
            where 
                r.batch_id = {alias}.id and 
                r.type like ? and 
                rd.xx like ?
        )""", [ 'foo', 'bar' ]
}

关于hibernate - Grails单向多对一和标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26973464/

相关文章:

grails - 在下面的关系中是一对多还是在许多关系中,为什么?

grails - 引导时奇怪的Grails行为填充列表

inheritance - Grails/GORM:继承的域类的行为不一致(测试VS Bootstrap)

java - 将 MySQL 中的 CHAR(0) 映射到 Hibernate 中的 boolean 值

grails - 如何从另一个命令对象访问命令对象的属性?

使用过滤器取消页面请求时,Grails 会抛出 404 错误

java - Grails 4.X 可以运行哪些版本的 Java?

java - 获取没有 instanceOf 的实体子类

java - 如果数据库更改,如何更新 Hibernate

string - 与 JSONB 相关的 PostgreSQL Hibernate-types 数据转换错误