InvalidDataAccessApiUsageException: Executing an update/delete query 解决办法
来源:互联网 发布:red5源码 教程 编辑:程序博客网 时间:2024/06/05 20:04
项目中是这样的:页面删除数据,从页面得到那一行数据的id,一直传进后台类的impl实现类,实现类中是一个dao去执行一个hql的delete语句,因为不是根据id删除的,是根据header_id删除的,没有现成的包装方法,之鞥自己写hql,如下:
@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>
0 0
- InvalidDataAccessApiUsageException: Executing an update/delete query 解决办法
- 解决InvalidDataAccessApiUsageException: Executing an update/delete query
- 解决InvalidDataAccessApiUsageException: Executing an update/delete query
- executing an update/delete query
- 解决 TransactionRequiredException:Executing an update/delete query
- (hibernate)Executing an update/delete query
- 事务问题,Executing an update delete query
- .TransactionRequiredException: Executing an update/delete query
- javax.persistence.TransactionRequiredException: Executing an update/delete query
- javax.persistence.TransactionRequiredException: Executing an update/delete query
- 解决javax.persistence.TransactionRequiredException: Executing an update/delete query错误
- javax.persistence.TransactionRequiredException: Executing an update/delete query
- javax.persistence.TransactionRequiredException: Executing an update/delete query
- 实践spring data jpa:Executing an update/delete query........
- Executing an update/delete query(未开启事务)
- javax.persistence.TransactionRequiredException: Executing an update/delete query
- hibernate事物问题-- Executing an update/delete query
- jpa2.1配置多个数据源和事务及Executing an update/delete query异常处理
- 书籍
- regsvr注册动态链接库报0x80070005
- win7之后的系统的CPU占用计算的原理与实现
- 全排列生成算法:next_permutation
- 在Studio中实现Junit测试
- InvalidDataAccessApiUsageException: Executing an update/delete query 解决办法
- java导入EXCLE时文件名中文乱码
- Tomcat启动报错java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServle
- Dapper的操作
- 自定义oracle聚集函数,类似于功能wm_concat
- C#创建Access数据库和数据表
- 关于JTCalendar的使用详解
- 浅谈C++多态性
- 通过cat命令学习复杂linux命令