我在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()
}
}
答案 0 :(得分:1)
问题是HibernateCriteriaBuilder
上的某些方法仅在从传递给get
,list
等的闭包内调用时才有效。
HibernateCriteriaBuilder crit = FattoriIndicatori.createCriteria()
def results = crit.list {
createAlias("indicatori","ind")
eq('ind.something', 'value')
}
会正常工作。 list
方法进行一些初始化(包括创建基础Criteria
实例,最初是null
),然后调用闭包来构建条件规范,然后执行生成的查询并返回结果。