#java #hibernate
#java #впасть в спящий режим
Вопрос:
Мой запрос выглядит следующим образом:
Query query1 = session.createQuery("select c.email from Contact c where c.contactNo =:contactNo");
query1.setInteger("contactNo", 22);
Ошибка, которую я получил, такова:
Исключение в потоке «main» java.lang.Исключение IllegalArgumentException: Параметр contactNo не существует как именованный параметр в [выберите c.email из Contact c, где c.contactNo = ?]
Он прекрасно работает с
Query query = session.createQuery("select c.email from Contact c where c.contactNo = ?");
query.setInteger(0, 22);
Почему 1-й запрос не работает?
Ответ №1:
Query query1 = session.createQuery("select c.email from Contact c where c.contactNo =:contactNo");
query.setParameter("contactNo", 22);
попробуйте использовать setParameter вместо setInteger
Комментарии:
1. Добро пожаловать в SO! Без какого-либо текста подобные ответы отображаются в очереди проверки низкого качества. Это означает, что существует риск, что ваш ответ будет удален так называемыми роботами-рецензентами. Я ничего не знаю об этой теме, поэтому я не могу точно сказать, низкое это качество или нет, но я предлагаю вам добавить небольшой абзац, в котором указано, что отличается от вашего кода и сообщения OP. Желательно с объяснением, почему это работает, а другое нет.
Ответ №2:
Я думаю, вам может понадобиться пробел перед вашим параметром:
Query query1 = session.createQuery("select c.email from Contact c where c.contactNo = :contactNo");
query.setInteger("contactNo", 22);
Ответ №3:
Just Try this
**Step 1--:** Add How many parameter you need just add in hashmap
-------------------------------------------------------------------
HashMap param_List=new HashMap();
param_List.put("contactNo",22);
**Step 2--:** Just You pass your Query
-------------------------------------------------------------------
Query query1 = session.createQuery("select c.email from Contact c where c.contactNo =:contactNo");
**Step 3--:** What ever Data type is no matters but get an output.
-------------------------------------------------------------------
for(Object paramKey : param_List.keySet())
{
query1.setParameter(paramkey.toString(), param_List.get(paramKey);
}
**Step 4--:**
-------------------------------------------------------------------
String finalResult=query1.getSingleResult().toString();