2016-03-08 55 views
0

我有2個實體類BatchFile和BatchFileRecord。當運行HQL查詢它提供了以下錯誤:無法使用休眠執行HQL更新查詢

org.hibernate.QueryException:無法解析屬性:的IsValidated:com.cc.myApp.dal.models.BatchFileRecord

Session sess = sessionFactory.getCurrentSession(); 
sess.beginTransaction(); 
String sb="update BatchFile bf set bf.isCheck = 0 where bf.Id in(selectb.BatchFileId from BatchFileRecord b where b.BatchId = "+batchId+" and b.IsValidated = 0) and bf.BatchId = "+batchId; 
    Query query = sess.createQuery(sb); 
    int numUpdated = query.executeUpdate(); 
    System.out.println("Rows affected: " + numUpdated); 

它直接使用mysql的效果很好,但是它不能使用hibernate,我怎樣才能幫助自己運行這個?或者有沒有其他方法可以做到這一點?

+0

這看起來像是HQL和純SQL之間的混合。你可以在你的問題中包含實體類嗎? –

+0

當您使用實體管理器時,必須使用實體類的屬性名稱而不是數據庫表的列名稱。 –

回答

0

IsValidated首字母大寫不符合java bean標準。 請更改屬性名稱或將getter更改爲getIsvalidated()

+0

它的小而仍然不起作用 – Atif

+0

你可以發佈你的BatchFile bean類與getters和setters – muthu