InvalidDataAccessApiUsageException: Executing an update/delete query 解决办法
2017-01-10 15:32
597 查看
项目中是这样的:页面删除数据,从页面得到那一行数据的id,一直传进后台类的impl实现类,实现类中是一个dao去执行一个hql的delete语句,因为不是根据id删除的,是根据header_id删除的,没有现成的包装方法,之鞥自己写hql,如下:
然后就报错,Executing an update/delete query,
1,一开始以为是hql不对,后面的问号后面还有个1,其实不是那里的错,1是下标,表示接受传进来的第一个参数,就想jdbc中PreparementStatement传参用问号一样;
,2,然后我看了下header.id似乎不对,因为表中的header.id字段不是点,是下划线,是header_id,改了后,还是不行;
于是请教了大神,但因为每个人懂的领域不同,而且hibernate用的不多了,大神也不太懂,折磨了许久之后到了下午,偶尔找到了一篇博文,找到了答案;
Executing an update/delete query 报错是因为没有事务,
解决办法1:在@Modifying后面加@Transactional
解决办法2:采用AOP声明式事务管理
@Modifying @Query("delete ReportingWeekDetail where header.id=?1") public void delByHeader(Integer headerid);
然后就报错,Executing an update/delete query,
1,一开始以为是hql不对,后面的问号后面还有个1,其实不是那里的错,1是下标,表示接受传进来的第一个参数,就想jdbc中PreparementStatement传参用问号一样;
,2,然后我看了下header.id似乎不对,因为表中的header.id字段不是点,是下划线,是header_id,改了后,还是不行;
于是请教了大神,但因为每个人懂的领域不同,而且hibernate用的不多了,大神也不太懂,折磨了许久之后到了下午,偶尔找到了一篇博文,找到了答案;
Executing an update/delete query 报错是因为没有事务,
解决办法1:在@Modifying后面加@Transactional
@Modifying@Transactional @Query("delete ReportingWeekDetail where header.id=?1") public void delByHeader(Integer headerid);
解决办法2:采用AOP声明式事务管理
<tx:advice id="dao" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="deleteByUserId*" read-only="false"/> <!--hibernate4必须配置为开启事务 否则 getCurrentSession()获取不到session--> <tx:method name="*" propagation="REQUIRED" /><!-- 他就是允许所有的方法都有session <tx:method name="*" propagation="REQUIRED" />--> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="daoMethods" expression="execution(* com.hblb.develop.repository..*.*(..))"/><!--第二种 expression="execution(* com.service.*.*(..))" 。。代表service下的所有 --> <aop:advisor advice-ref="dao" pointcut-ref="daoMethods" /> </aop:config>
相关文章推荐
- 【备忘】 iOS开发UI基础 UI高级开发(完整)视频下载
- easyui中datagrid单元格实现字数超限显示省略号的效果总结
- querystring按钮传参时,遇到回发或回调参数无效问题
- grails executeQuery in
- The resource identified by this request is only capable of generating responses with characteristics
- 危险的UITableView(同步和异步)
- 【完美解决】ERROR ITMS-90474: ”Invalid Bundle. Ipad Multitasking suport requires these orientations”
- Ubuntu下Mysql 5.7中文插入失败的问题,Incorrect string value
- webstorm开发vue组件时,支持scss/less等预处理语言
- weui textarea超出字符被截断
- 往php的数组循环的时候往里面增加新的key-value
- WeX5学习笔记之前端页面模型UI2
- 子线程修改UI异常
- 微信小程序-UI控件的使用(1)
- [置顶] Duilib 中滚动条自动滚动到底的方法
- [工具] Mysql GUI工具
- iOS贝塞尔曲线UIBezierPath
- new Integer(text).intValue()的用法
- 正确编译 DuiLib 静态库的方法
- Java中 intValue,parseInt,Valueof 这三个关键字的区别