Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Запрос должен начинаться с select или from: update

Автор вопроса: Nilam NaghorОтветов: 2

Я использую этот код для обновления, но получаю сообщение об ошибке, например, запрос должен начинаться с select or from : update, поэтому, пожалуйста, помогите мне:

public static void changeOccup(String email,String occup){
 try{  Session sess=UtilClass.createSession();
  Transaction tx=sess.beginTransaction();Query que=sess.createQuery("update Userrecord set occupation=occup where emailId=email");
  que.setParameter("occup", occup);
  que.setParameter("email", email);
  int result=que.executeUpdate();
  JOptionPane.showMessageDialog(null,"occup changed"+result);
    tx.commit();
 }
  • также использовал этот запрос, но не работал: Query que = sess.createQuery (обновить набор записей Userrecord, занятие =: занятие, где emailId =: электронная почта); Nilam Naghor 01.04.2014
  • Запрос que=sess.createQuery (обновление набора записей пользователя, занятие =: занятие +, где emailId =: электронная почта); попробовал это также, но та же ошибка .. Nilam Naghor 01.04.2014

javahibernatehql

Ответы

Ответ 1 · рейтинг 1 · developerwjk

Используйте SQLQuery и createSQLQuery вместо Query и createQuery. Если вы используете Query и createQuery, вы должны использовать синтаксис Hibernate. Если вам нужен обычный синтаксис SQL, используйте SQLQuery.

Ответ 2 · Nilam Naghor

Проблема решена.. я использовал метод обновления сеанса

public static void changeOccup(String email,String occup){Session sess=null;try{sess=UtilClass.createSession();Transaction tr=sess.beginTransaction();Userrecord u=(Userrecord) sess.get(Userrecord.class, email); u.setOccupation(occup); sess.update(u);tr.commit();}catch(Exception e){} }

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы