我试图使用分离的条件作为“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)
最佳答案
我相信 list
只是默认值,因为您可以在 each
结构中使用它,例如
trades.each {
println it
}
那是因为它实现了 Iterable。否则,您实际上必须使用 trades.list()
运行查询。仅使用 trades
引用 DetachedCriteria 对象。
def activities = Activities.withCriteria {
'in'("tradeNumber", trades.list())
}
关于grails - 使用 detachedCriteria 作为 in 子句的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13264525/