hibernate delete 为什么执行不了

问题描述

我调用模板里的delet方法经过多次调试sql语句也输出了就是不删除不过用在数据库执行sql就删掉了坐等高手分数全给你们这是Controll代码String userId = (String) request.getSession().getAttribute(Constants.SESSION_USER_ID);List<BzptBatchbuy> list = this.bzptbatchbuymanager.findplgmbyuid(userId);try {for (BzptBatchbuy bzt : list) {System.out.println(bzt.getId());this.bzptbatchbuymanager.deleteBzptBatchbuy(bzt.getId());}} catch (Exception e) {e.printStackTrace();}这是通用dao的代码log.debug("deleting " + className + " instance");boolean success = false;try {getSession().delete(getSession().load(entityClass, id));log.debug("delete successful");success = true;} catch (RuntimeException re) {log.error("delete failed", re);throw re;}return success;事物是spring来管理的这是事物的级别<prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>

解决方案

你getSession();的实现是这样子的么?HibernateSessionFactory.getSession();你可以试试这个样子看看行不行。Session session = HibernateSessionFactory.getSession();Transaction tx = null;try { tx = session.beginTransaction(); BzptBatchbuy bb = (BzptBatchbuy)session.load(BzptBatchbuy.class, id); session.delete(bb); } catch (Exception e) { } finally { tx.commit(); session.close(); }
解决方案二:
楼上正解,hibernate的事务开启与关闭是为了完成一个原子操作。两个操作组合成一个原子操作,一个成功,另一个不成功,那么事务就会回滚。就像银行转账,一个进款操作一个出款操作,哪个不成功都得回滚。这个是hibernate事务的真实用途。其实楼上代码正解,但是最好是在catch到exception后 tx.rollback();
解决方案三:
没哟commit吧
解决方案四:
既然你用的是事物,你都没有开始事物和执行事物,你要他怎么删除

时间: 2024-09-20 07:51:21

hibernate delete 为什么执行不了的相关文章

getHibernateTemplate.delete()/update()执行失败!求助!!!

问题描述 如题,项目中删除和更新操作都不能正确执行...delete()方法执行的时候已经进入dao里面,是在spring的hibernatetemplate中遇到问题的,这部分的代码我不能调试...请问有什么解决的办法没有?try.catch也不管用,根本就捕捉不到异常,项目有在applicationContext.xml中设置全局异常处理,可是看不到异常的信息...update()方法是更新多对多的单向操作.三张表,project,emp,pro_user_table,pro_user_ta

hibernate delete语句报QueryParameterException错误

问题描述 hibernate delete语句报QueryParameterException错误 代码: @Override public void delete(int id) { // TODO Auto-generated method stub Session session = getSession(); String hql = "delete from Services where id = ?"; Query q = session.createQuery(hql);

部门来了个新手,在执行SQL数据库的时候经常update,delete,有时候执行错了导致灾难性的后果

问题描述 如何开发一个软件,在执行delete,update前提醒他,该语句会影响多少行? 解决方案 解决方案二:建个事务先执行返回多少行.然后提示后提交事务获取回滚事务解决方案三:看看他where条件,换马selectcount(*)fromXXwhereXXcount(*)就是影响的行数解决方案四:先使用Select查出满足条件的记录有多少.然后再删除/修改解决方案五:操作的时候输出返回值就可以ExecuteNonQuery楼主是要就像查询分析器那样的效果吧解决方案六:顶一下解决方案七:可以

Sping+Hibernate关于批量执行SQL的问题

问题描述 我举个例子,比如一个请求需要删除一个用户以及这个用户产生的业务数据,那么关于代码写法这里有两种方案:一.Dao层分别创建删除用户接口以及删除各种业务数据接口(一个或多个),在 一个Logic层方法分别调用删除用户接口和删除业务数据接口.二.Dao层创建一个删除用户和和业务数据的接口,多次调用同一个Query对象.Logic只调用这个Dao层接口.方法一的好处在于代码清晰,方法二由于复用Query效率较高.Q:想问问大家在这种场景下最优的写法是怎样的呢,以上的两种方法只是我个人能想到的不

spring hibernate service层执行hql问题

问题描述 在service层中写hql,然后直接使用dao调用,返回值是Object类型,里面的参数名字也变成了01234...而在service层调用dao,dao执行hql,则不会出现这种问题,会返回正常实体跑断点发现返回值类型是由一个queryPlanCache的东西管理的然后这个东西是在SessionFactoryImplementor中,而跑断点没看到这个对象中的返回值类型是什么时候设定的,在执行的时候就已经存在了,求大神解释为何service层中写hql,并使用baseDao执行hq

oracle-PLSQL SQL WINDOW不执行DELETE语句问题!!!

问题描述 PLSQL SQL WINDOW不执行DELETE语句问题!!! 系统win7 oracle10G plsql Version 8.0.2.1505 在plsql SQL WINDOW执行DELETE FROM AAA; 执行后没反应, 换了句DELETE FROM; 执行不报错,像是DELETE 被屏蔽了一样. 但是在plsql COMMAND WINDOW是可以正常执行. 卸载重装还是这样.郁闷. 求大神解救. 解决方案 不用郁闷了,应该是你的安装程序有问题,建议你用PLSQL D

Delete 方法

  删除指定的文件或文件夹. object.Delete( force ); 参数 object 必选项. 应为 File 或 Folder 对象的名称. force 可选项. Boolean 值,如果要删除设置了只读属性的文件或文件夹则为 True :否则为 False (默认). 说明 如果指定的文件或文件夹不存在,那么会产生一个错误. Delete 方法对于单个 File 或 Folder 产生的结果和使用 FileSystemObject.DeleteFile 或 FileSystemO

hibernate-Hibernate 语句执行顺序问题

问题描述 Hibernate 语句执行顺序问题 代码: private static void editInfo() { Session session = null; try { session = HibernateUtil.getSession(); if (session != null) { session.beginTransaction(); Person p = new Person("王三", 22, "男", "北京"); s

粗浅看Struts2和Hibernate框架

----------------------------------------------------------------------------------------------[版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/52424578作者:朱培      ID:sdksdk0      邮箱: zhupei@tianfang1314.cn    ------------------