Grails createCriteria返回null标准

时间:2013-06-21 14:47:41

标签: hibernate grails nullpointerexception gorm

我在grails 2.1.1中遇到一个奇怪的NullPointerException。

HibernateCriteriaBuilder crit = FattoriIndicatori.createCriteria()
crit.createAlias("indicatori","ind")... // NPE here, because underlying Criteria is null
  • 该类列在hibernate-cfg
  • 来自同一配置文件的其他类正常工作
  • 这个课程最近没有添加,很长一段时间都在那里

当然缺少一些东西,但我看不到它。

编辑:我确信该类已正确配置,因为此代码有效:

HibernateCriteriaBuilder crit = FattoriIndicatori.createCriteria()
Number res = crit.get {
projections {
    count()
    }
}

1 个答案:

答案 0 :(得分:1)

问题是HibernateCriteriaBuilder上的某些方法仅在从传递给getlist等的闭包内调用时才有效。

HibernateCriteriaBuilder crit = FattoriIndicatori.createCriteria()
def results = crit.list {
  createAlias("indicatori","ind")
  eq('ind.something', 'value')
}

会正常工作。 list方法进行一些初始化(包括创建基础Criteria实例,最初是null),然后调用闭包来构建条件规范,然后执行生成的查询并返回结果。