2013-10-11 70 views
1

更新我的JSF應用中,我使用Hibernate作爲ORM映射工具的工作。值不處於休眠更新查詢

問題: 我使用MySQL數據庫,所以我通過Hibernate添加數據的成Mysql

我現在想更新從bean類數據庫值

當我試圖更新它的查詢將成功執行,但該值更新的值不會在數據庫

我Bean類代碼中添加:

Session session=HibernateUtil.getSessionFactory().openSession(); 
Query hQuery=session.createQuery("update Record set status='Present' where refId=100"); 
System.out.println("Result : "+hQuery.executeUpdate()); 

上面的代碼是從表的「記錄」,其表示沒有輸出錯誤,但在數據庫不更新值更新所述數據庫中的值。

Hibernate : update sample.record set Status='Present' where RefId=100 
Result : 9 

在控制檯中顯示的上述結果,對showSql

將非常感激任何建議...

+0

你有檢查數據庫中的值,如果它更新? – vjamit

+0

@ vjamit ..我發佈這個問題僅僅是這個原因..值不更新數據庫 – kark

+1

你提交你的交易? – vjamit

回答

4

我做了一個錯誤,這是提交Hibernate事務添加註釋@Transactional ...

更新Bean類

 Transaction tx=null; 
     Session hSession=HibernateUtil.getSessionFactory().openSession(); 
     Query hQuery=hSession.createQuery("update Leaverecord set status='HR' where refId="+lrb.getRefId()); 
     System.out.println("Result : "+hQuery.executeUpdate()); 
     tx=hSession.beginTransaction(); 
     tx.commit(); 
     hSession.close(); 

輸出

Hibernate: update sample.record set Status='Present' where RefId=100 
Result : 9 

我做錯了,我沒有使用hibernate更新查詢中的事務,我認爲事務查詢只用於Hibernate插入。

現在它工作正常...

0

你作出這樣的方法交易?例如:如果你使用springframework的

+0

我沒有使用註釋映射..我正在使用XML映射.. – kark

+1

你確定事務被提交到數據庫?檢查[鏈接](http://stackoverflow.com/questions/14622962/what-is-transaction-commit-in-hibernate).. – David

+0

對不起,這是我的錯誤..我還沒有開始我的交易... – kark