Я пытаюсь установить параметр в своем запросе, например:
select * from Cars where Cars.color NOT IN (:color_params)
И когда я добавляю, что параметр в моем JavaClass похож:
...
query.setParameter("color_params", "RED,BLUE");
...
И это не работает, только работает только с одним параметром.
Я попробовал "'RED','BLUE'"
и не работает к.
Если я поместил свои параметры в запрос, работает, например:
select * from Cars where Cars.color NOT IN ('RED','BLUE')
Что я делаю неправильно!?
Заранее спасибо
Предполагается, что вы должны передать список.
List<String> colors = ....;
String query = "select * from Cars where Cars.color NOT IN (:color_params)";
Map<String, Object> params = new HashMap<String, Object>();
params.put("color_params", colors);
// ... execute the query with the param.
Также можно сделать:
query.setParameter("color_params", colors);
Как правило, часто предпочитается передавать параметры фиксированному запросу, вместо того, чтобы настраивать строку. Преимуществами могут быть:
Нужно передавать в списке строк, а не одну строку. JPA не разбирает ваши значения, вы должны разделить их сами.