有没有办法,查询(标准)许多方面的列表,在单向多对一关系的一方有限制
域
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应该可行,但除了查询之外还有其他任何标准。
答案 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' ]
}