在使用hibernate进行删除操作的时候,报了一个奇怪的错误:
org.springframework.orm.hibernate4.HibernateOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1;主键设置是自增的,删除操作代码如下:
session=sf.getCurrentSession();
Meeting m=new Meeting();
m.setId(id);
try{
session.delete(m);
}catch(Exception e){
e.printStackTrace();
return false;
}
return true;百度了一下,这个问题是更新时主键设置不对引起的,可是我进行的是删除操作,怎么还会出现这个异常,求解答
Hibernate异常
org.springframework.orm.hibernate4.HibernateOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1;主键设置是自增的,删除操作代码如下:
session=sf.getCurrentSession();
Meeting m=new Meeting();
m.setId(id);
try{
session.delete(m);
}catch(Exception e){
e.printStackTrace();
return false;
}
return true;百度了一下,这个问题是更新时主键设置不对引起的,可是我进行的是删除操作,怎么还会出现这个异常,求解答
Hibernate异常
不然它就出问题 了;
Hibernate: delete from Meeting where id=?Hibernate: select meeting0_.id as id1_2_, meeting0_.address as address2_2_, meeting0_.content as content3_2_, meeting0_.listener as listener4_2_, meeting0_.speaker as speaker5_2_, meeting0_.subject as subject6_2_, meeting0_.time as time7_2_ from Meeting meeting0_Hibernate: delete from Meeting where id=?struts.xml配置:
<action name="deleteSupply" class="com.oa.action.OfficeSupplyAction">
<result type="chain">
<param name="actionName">queryAll</param>
<param name="namespace">/supply</param>
</result>
</action>页面使用了js来判断跳转:
function del(){
var url=document.getElementById("id").getAttribute("href");
if(confirm("确定要删除吗?")){
window.location.href=url;
alert("删除成功!");
return true;
}
return false;
}而且我把删除操作换成hql语句的形式就没问题,很奇怪啊,求解答
m.setId(id);
session.delete(m);
Hibernate执行删除,一般需要从库中获取对象(load,get)而不是new一个对象,待对象变成持久状态后,再执行删除操作,这样对象就变成游离态。