dao.getHibernateSession().createQuery(hql).setParameter("bookid", bookid).setParameter("batch", batch).executeUpdate();
(1)String hql="delete from TbProduceplanaccount ppa where ppa.tbBusinessplanaccount.batch=:batch and ppa.tbProduceplanbook.id=:bookid ";
異常:
總結(jié): hibernate的理解方式與人不同,不能自動(dòng)生成子查詢;更新或刪除操作是不允許聯(lián)表的,必須通過子查詢找出數(shù)據(jù).
題外語:級(jí)聯(lián)刪除是要設(shè)置映射的.
(1)String hql="delete from TbProduceplanaccount ppa where ppa.tbBusinessplanaccount.batch=:batch and ppa.tbProduceplanbook.id=:bookid ";
異常:
Hibernate: delete from Tb_ProducePlanAccount, Tb_BusinessplanAccount tbbusiness1_ where batch=? and ProducePlanBook_ID=?
2011-11-17 11:50:16,166 WARN [JDBCExceptionReporter] SQL Error: 933, SQLState: 42000
2011-11-17 11:50:16,166 ERROR [JDBCExceptionReporter] ORA-00933: SQL 命令未正確結(jié)束
(2)hql="delete from TbProduceplanaccount ppa where ppa in (from TbProduceplanaccount ppa where ppa.tbBusinessplanaccount.batch=:batch and ppa.tbProduceplanbook.id=:bookid)";
2011-11-17 11:50:16,166 WARN [JDBCExceptionReporter] SQL Error: 933, SQLState: 42000
2011-11-17 11:50:16,166 ERROR [JDBCExceptionReporter] ORA-00933: SQL 命令未正確結(jié)束
(2)hql="delete from TbProduceplanaccount ppa where ppa in (from TbProduceplanaccount ppa where ppa.tbBusinessplanaccount.batch=:batch and ppa.tbProduceplanbook.id=:bookid)";
執(zhí)行正常.
總結(jié): hibernate的理解方式與人不同,不能自動(dòng)生成子查詢;更新或刪除操作是不允許聯(lián)表的,必須通過子查詢找出數(shù)據(jù).
題外語:級(jí)聯(lián)刪除是要設(shè)置映射的.