2012-02-08 59 views
0

我試圖按照文件 http://docs.jboss.org/hibernate/orm/3.3 ... TCH-直接試圖做Hibernate更新 - 有人可以指出我在正確的方向嗎?

但在這個例子中得到以下錯誤在我的服務器日誌:

重度:org.hibernate.QueryException:查詢必須以SELECT或FROM開頭:update [update hibernate.TbUser u set u.vcUserName =:userName,u.vcUserPsw =:userPsw,u.vcUserFirstName =:firstName,u.vcUserLastName =:lastName,u.vcUserMiddleName =:middleName, u.vcEmailAddress =:email,u.vcPhoneNumber =:phone,u.dtTerminatedDate =:termDate,u.dtHireDate =:hireDate,u.dtUpdTime =:updTime,u.iUpdUserId =:userId其中iUserId =:id]

這表明我需要與SELECTFROM開始查詢,但該示例使用更新查詢Update,所以我不明白是什麼問題。

任何人都可以告訴我一個如何做Update的例子? 該文件顯然沒有。 謝謝。

這裏是我試圖執行代碼:

public int updateUser(String userName, String passwd, String firstName, String middleName, 
     String lastName, String email, String phone, Date termDate, Date hireDate, int id) 
{ 
    int status = 0; 
    try { 
     org.hibernate.Transaction tx = session.beginTransaction(); 
     String cmd = "update TbUser u set u.vcUserName = :userName, "+ 
       "u.vcUserPsw = :userPsw, u.vcUserFirstName = :firstName, "+ 
       "u.vcUserLastName = :lastName, u.vcUserMiddleName = :middleName, "+ 
       "u.vcEmailAddress = :email, u.vcPhoneNumber = :phone, "+ 
       "u.dtTerminatedDate = :termDate, u.dtHireDate = :hireDate, "+ 
       "u.dtUpdTime = :updTime, u.iUpdUserId = :userId where iUserId = :id"; 
     Query q = session.createQuery(cmd); 
     q.setString("userName", userName); 
     q.setString("userPsw", passwd); 
     q.setString("firstName", firstName); 
     q.setString("middleName", middleName); 
     q.setString("lastName", lastName); 
     q.setString("email", email); 
     q.setString("phone", phone); 
     q.setDate("termDate", termDate); 
     q.setDate("hireDate", hireDate); 
     q.setDate("updTime", new Date()); 
     q.setInteger("id", id); 
     status = q.executeUpdate(); 
     tx.commit(); 
    } 
    catch(Exception e) { 
     e.printStackTrace(); 
     status = -1; 
    } 
    return status; 
} 

回答

0

退房here這個頁面,看起來你需要包含ANTLR的* .jar在類路徑中,並使用不同的解析器,org.hibernate.hql.ast.ASTQueryTranslatorFactory

嘗試使用該庫,看看你如何去。

相關問題