allId='1012','1013','1014'session.createQuery("delete TbActual tba where tba.relevantID in ("+allId+")"); for (int i = 0; i < list.size(); i++) {
System.out.println("删除商家,ID为:" + list.get(i));
}
session.getTransaction().commit();
session.close();输出结果'1012','1013','1014'
from TbActual tba where tba.relevantID in('1012','1013','1014')
揭阳金壶春专卖店环城店
揭阳兰花酒店
揭阳乐视眼镜商行金元大楼店
删除商家,ID为:com.covics.somewhere.CompanyData.ActualVo@b7ec5d
删除商家,ID为:com.covics.somewhere.CompanyData.ActualVo@fefe3f
删除商家,ID为:com.covics.somewhere.CompanyData.ActualVo@e61a35但是数据库内的确没有删除掉 谁能帮解决下 在线等待
System.out.println("删除商家,ID为:" + list.get(i));
}
session.getTransaction().commit();
session.close();输出结果'1012','1013','1014'
from TbActual tba where tba.relevantID in('1012','1013','1014')
揭阳金壶春专卖店环城店
揭阳兰花酒店
揭阳乐视眼镜商行金元大楼店
删除商家,ID为:com.covics.somewhere.CompanyData.ActualVo@b7ec5d
删除商家,ID为:com.covics.somewhere.CompanyData.ActualVo@fefe3f
删除商家,ID为:com.covics.somewhere.CompanyData.ActualVo@e61a35但是数据库内的确没有删除掉 谁能帮解决下 在线等待
还是一句话,要么使用bulk update/delete方式,要么使用操作持久化对象方式,当使用bulk update时,不可避免导致一级缓存的脏读,Hibernate的解决方式仅仅是删除二级缓存。
所以通常的方式就是直接操作持久化对象,这要不会引起数据库与缓存的不一致。 参考:http://www.javaeye.com/topic/21640