2

'in'句のサブクエリとして分離基準を使用しようとしていますが、どういうわけか機能しません。

def trades = new DetachedCriteria(Trade).build {
            projections { property "tradeNbr" }
}

def activities = Activiies.withCriteria {
            'in' "tradeNumber", trades
}

これは私が遭遇しているエラーです:

2012-11-07 01:07:09,088 [http-bio-8081-exec-1] TRACE sql.BasicBinder  - f228562 - binding parameter [1] as [INTEGER] - grails.gorm.DetachedCriteria@57c4e7b2



grails.gorm.DetachedCriteria cannot be cast to java.lang.Integer. Stacktrace follows:
java.lang.ClassCastException: grails.gorm.DetachedCriteria cannot be cast to java.lang.Integer
            at grails.orm.HibernateCriteriaBuilder.invokeMethod(HibernateCriteriaBuilder.java:1587)
            at org.grails.datastore.gorm.GormStaticApi.withCriteria(GormStaticApi.groovy:282)
4

1 に答える 1

2

これは、次のような構成listで使用できるという意味でのデフォルトにすぎないと思います。each

trades.each {
    println it
}

Iterableを実装しているからです。それ以外の場合は、実際にを使用してクエリを実行する必要がありますtrades.list()。使用するだけtradesで、DetachedCriteriaオブジェクトを参照します。

def activities = Activities.withCriteria {
    'in'("tradeNumber", trades.list())
}
于 2012-11-08T06:49:16.493 に答える