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

Я использую этот код для обновления, но получаю сообщение об ошибке, например, запрос должен начинаться с 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();
 }

person Nilam Naghor    schedule 01.04.2014    source источник
comment
также использовал этот запрос, но не работал: Query que = sess.createQuery (обновить набор записей Userrecord, занятие =: занятие, где emailId =: электронная почта);   -  person Nilam Naghor    schedule 01.04.2014
comment
Запрос que=sess.createQuery (обновление набора записей пользователя, занятие =: занятие +, где emailId =: электронная почта); попробовал это также, но та же ошибка ..   -  person Nilam Naghor    schedule 01.04.2014


Ответы (2)


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

person developerwjk    schedule 01.04.2014
comment
и для запроса sql я должен использовать класс pojo или таблицу базы данных?? - person Nilam Naghor; 02.04.2014
comment
я использовал SQLQuery и createSQLQuey, но это дает мне ошибку, например: не удалось выполнить запрос на массовую манипуляцию. - person Nilam Naghor; 02.04.2014
comment
в моем файле cfg.xml я использую: hibernate.query.factory_class org.hibernate.hql.classic.ClassicQueryTranslatorFactory.. если я изменю его с этого на hibernate.query.factory_class org.hibernate.hql.classic.ClassicQueryTranslatorFactory, тогда мой выбор и вставить запрос не работает.. - person Nilam Naghor; 02.04.2014
comment
См. stackoverflow.com /вопросы/20625692/ - person developerwjk; 02.04.2014

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

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){} }
person Nilam Naghor    schedule 03.04.2014