как использовать именованные параметры в упомянутом сценарии?

Я использую спящий режим. У меня есть требование динамически добавлять условие where. Я отправляю список строк.
select * from employee.

Теперь мне нужно добавить условие where как:
select * from employee where name like :somename or name like:othername

Здесь somename и othername являются именованными параметрами. Значения задаются из списка строк.
В этом случае список может содержать две строки, чтобы для обоих именованных параметров можно было задать значения.

Как я могу использовать имена для именованных параметров?

Прямо сейчас я использую список строк для обоих именованных параметров и для установки их значений.
Проблема в том, что существует несколько ограничений на использование именованных параметров.

Именованный параметр не должен содержать специальные символы (-,/ и пробел). Также именованный параметр не должен быть длиннее 30 символов.

Если мой список строк имеет какое-либо имя с указанными выше специальными символами или его длина превышает 30 символов, тогда возникает исключение, если такая строка используется в качестве именованного параметра.

Как я могу использовать именованные параметры для каждой строки в списке?


person user1016403    schedule 02.03.2012    source источник
comment
Ваш вопрос представляет собой нечитаемую стену текста. Попробуйте разбить его так, чтобы люди действительно захотели его прочитать.   -  person skaffman    schedule 02.03.2012


Ответы (1)


Пробовали ли вы использовать Criteria API http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html

Что ж, выберите с кучей «где» не должно быть проблем с API критериев. Просто позаботьтесь о НРАВИТСЯ%

и проверьте это, и скажите мне, если вам нужно больше деталей. http://www.javalobby.org/articles/hibernatequery102/

person Darwly    schedule 02.03.2012
comment
привет, спасибо за твой ответ. Здесь в качестве примера я упомянул простой запрос сотрудника. Но фактический запрос слишком сложен, и я не могу использовать критерии и должен использовать собственный SQL-запрос. - person user1016403; 02.03.2012
comment
привет darwly, спасибо за ваш ответ. Ссылка говорит о критериях. Но я должен использовать собственный sql. Мой единственный вопрос: какие имена я должен использовать в качестве именованных параметров? Спасибо. - person user1016403; 02.03.2012
comment
в начале есть код со строковым буфером, который показывает вам, как построить sql с множеством где - person Darwly; 02.03.2012