Без установки параметра именованного запроса?

Например, у меня есть именованный запрос:

@NamedQuery(name = "Students", query = "SELECT s FROM Student WHERE s.active = 'Y' OR s.name= :name)

Иногда я хочу установить параметр name со значением, а иногда - нет. Вызывает ли ошибка, если я его не устанавливаю?


person kamaci    schedule 22.12.2010    source источник
comment
связанные: stackoverflow.com/questions / 2444603 /   -  person Bozho    schedule 22.12.2010


Ответы (2)


Вы должны установить его всегда. В противном случае - создайте два запроса - один с параметром, а другой без него. Вы можете поместить общую часть в константу (static final)

person Bozho    schedule 22.12.2010

Я нашел такое решение:

if (my test criteria){
     query.setParameter("name", "name of a student");
  }  else {
     query.setParameter("name", " ");
  }

Я устанавливаю параметр имени с пробелом, чтобы он работал.

person kamaci    schedule 22.12.2010