Почему это работает нормально:
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 из списка ввода.
Я использую Grails 2.0.
Спасибо
Ред .Обратите внимание, что я только что обнаружил критерий дизъюнкции, чтобы решить мою потребность (/2414290/hibernate-criteria-query-vlozhennoe-sostoyanie), но вопрос все еще актуален, и я все еще хотел бы понять, что происходит.