我在grails 2.1.1中得到了一个奇怪的NullPointerException。
HibernateCriteriaBuilder crit = FattoriIndicatori.createCriteria()
crit.createAlias("indicatori","ind")... // NPE here, because underlying Criteria is null
当然有什么丢失,但我看不到。
编辑:我确信该类已正确配置,因为此代码有效:
HibernateCriteriaBuilder crit = FattoriIndicatori.createCriteria()
Number res = crit.get {
projections {
count()
}
}
最佳答案
问题在于,只有从传递给HibernateCriteriaBuilder
,get
等的闭包内调用时,list
上的某些方法才有效。
HibernateCriteriaBuilder crit = FattoriIndicatori.createCriteria()
def results = crit.list {
createAlias("indicatori","ind")
eq('ind.something', 'value')
}
会很好的工作。
list
方法进行一些初始化(包括创建基础的Criteria
实例,该实例最初是null
),然后调用闭包以建立条件规范,然后执行结果查询并返回结果。