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 に答える