Grails 3.3 GORM CriteriaBuilder在属性上起作用

时间:2018-05-30 21:52:00

标签: grails gorm criteria grails-3.3

我现在使用Grails 3.3和GORM CriteriaBuilder进行大部分查询,但我仍然坚持如何在属性上调用函数 - 例如,在Date属性上调用hour()函数。如果我在DetachedCriteria的地方使用,我可以这样:

def whereQuery = Student.where {
    hour(registration) = 15
}

找到所有在15:00到15:59之间注册的学生。

但是,如果我使用CriteriaBuilder,我不能这样做:

def c = Student.createCriteria()
def results =  c.list {
    eq 'hour(registration)', 15
}

有没有办法在构建器DSL中实现这一目标?我知道我可以回到域类并定义一个从日期字段中提取小时的映射,但这看起来很笨拙。

1 个答案:

答案 0 :(得分:1)

尝试<div class="flex"> <img src="http://placehold.it/100" /> <div class="top"> <p> Stuff </p> </div> <div class="bottom"> <p> More Stuff </p> </div> </div>

sqlRestriction

请参阅http://gorm.grails.org/latest/hibernate/manual/index.html#criteria

中的def results = Student.withCriteria { sqlRestriction 'hour(registration) = 15' }