我有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,我怎樣才能幫助自己運行這個?或者有沒有其他方法可以做到這一點?
這看起來像是HQL和純SQL之間的混合。你可以在你的問題中包含實體類嗎? –
當您使用實體管理器時,必須使用實體類的屬性名稱而不是數據庫表的列名稱。 –