Grails单向多对一和标准

时间:2014-11-17 13:09:55

标签: 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应该可行,但除了查询之外还有其他任何标准。

1 个答案:

答案 0 :(得分:1)

如果查询和分离标准无法解决,则一个选项将使用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' ]
}
相关问题