查询必须以select或from:update开头

时间:2014-04-01 19:39:34

标签: java hibernate hql

我正在使用此代码进行更新占用,但我收到错误信息,例如查询必须以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();
 }

2 个答案:

答案 0 :(得分:1)

使用SQLQuerycreateSQLQuery代替QuerycreateQuery。如果您使用QuerycreateQuery,则必须使用Hibernate的语法。如果您需要常规SQL语法,请使用SQLQuery

答案 1 :(得分:0)

  

问题解决了..我使用了会话的方法更新

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){} }