为什么这样可行:
Object searchCores() {
...
def core_criteria = sessionFactory.currentSession.createCriteria(Core.class)
core_criteria.add(Restrictions.ilike('field', '%inputvalue%'))
...
}
并且这不会在运行时:
Object searchCores() {
...
def core_criteria = sessionFactory.currentSession.createCriteria(Core.class)
core_criteria.add(X())
...
}
Criterion X() {
return Restrictions.ilike('field', '%inputvalue%'))
}
错误是:
Error 500: Internal Server Error
Class java.lang.NullPointerException
Message null
at core_criteria.add(X()) line.
这个问题的关键在于,在某些时候我希望函数X成为一个递归函数,从输入列表中添加一长串嵌套的Restrictions.or Criterions。
我正在使用Grails 2.0。
谢谢
版即可。请注意,我刚刚发现了Disjunction标准来解决我的需求(http://stackoverflow.com/questions/4206702/hibernate-criteria-query-nested-condition)但问题仍然是相关的,我仍然想了解什么是继续。