2012-09-18 55 views
1

我試圖更新查詢,但這個錯誤不斷傳來:HQL不支持DML操作

public List<Object[]> rosterGrdUpdate(String stuBunValue, String stuGrdValue, String pcID, String crsCd) { 
List<Object[]> updateRosterInfo = null; 
java.util.Date today = new java.util.Date(); 
Date Date_toDay = new java.sql.Date(today.getTime()); 
String modifyFlagUpdate = "U"; 
String modifyFlagWh = "N"; 
Query querySt = null; 
String sql1 = "update WgRoster wr set wr.grade= :gr, wr.modify_flag= :mf, wr.grade_date= :gd, wr.user_id= :ud" + 
" where wr.stubun= :stb and wr.crs_cd= :cr and wr.modify_flag != :mfu"; 
querySt = session.createQuery(sql1); 
querySt.setParameter("gr", stuGrdValue); 
querySt.setParameter("mf", modifyFlagUpdate); 
querySt.setParameter("gd", Date_toDay); 
querySt.setParameter("ud", pcID); 
querySt.setParameter("stb", stuBunValue); 
querySt.setParameter("cr", crsCd); 
querySt.setParameter("mfu", modifyFlagWh); 
int res = querySt.executeUpdate(); 
return (List<Object[]>)querySt.list(); 

任何建議,將不勝感激。

+0

我一直在尋找在谷歌上這一點,但至今沒有運氣。請建議,如果你發現我失蹤的任何東西。 – zaman

+0

錯誤在哪裏? – shevchyk

+0

shevchik我解決了這個問題。我是與數據庫的複合鍵映射問題。 – zaman

回答

0

querySt對象只支持executeUpdate()給定操作的性質。刪除querySt.list()。再次查詢,即

query = session.createQuery("from WgRoster"); 

,然後調用query.list();