1

查询组成如下:

def subQuery = {
    ge("date", fromDate)
}

def query = {
    projections {
        sqlProjection 'sum(hoursBefore+hoursAfter) as totalHours', 'totalHours', INTEGER
    }
    and subQuery
}

然后执行如下:

def results = WorkLog.createCriteria().get(query)

我得到错误:

没有这样的属性:INTEGER 类:grails.orm.HibernateCriteriaBuilder

知道如何解决这个问题吗?

4

1 回答 1

0

我遇到了与我设置尝试此操作的新项目相同的错误。由于某种奇怪的原因,无法用这种方法修复错误。这可能是 Hibernate 版本问题或 grails 不支持该语法。

这是在测试中有效的解决方法:

def results = WorkLog.createCriteria().list {
        projections {
            addProjectionToList(Projections.sqlProjection(
                'sum(hours_before+hours_after) as totalHours', ["totalHours"].toArray(new String[1]), [Hibernate.INTEGER].toArray(new org.hibernate.type.Type[1])
                ),'sum')
        }
        and subQuery
    }
于 2013-02-01T13:40:28.527 回答