junit 测试保存 未加@Modifying,@Transactional(readOnly=false)报错
2016-03-22 13:49
190 查看
修改 添加删除都需要加上事务,按业务事务也需要加上
未加Modifying
@Query("update Employee e set e.email=:email where e.id=:id")
public int updateEmailByID(@Param("id")Long id,@Param("email")String email);
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [update com.china.user.entity.Employee e set e.email=:email where e.id=:id]; nested exception is java.lang.IllegalStateException:
org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [update com.china.user.entity.Employee e set e.email=:email where e.id=:id]
at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:381)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:156)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:417)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:147)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.data.jpa.repository.support.LockModeRepositoryPostProcessor$LockModePopulatingMethodIntercceptor.invoke(LockModeRepositoryPostProcessor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy40.updateEmailByID(Unknown Source)
at com.china.user.biz.impl.EmployeeBizImpl.updateEmailByID(EmployeeBizImpl.java:86)
at com.china.user.biz.impl.EmployeeBizImpl$$FastClassByCGLIB$$7abf59d1.invoke(<generated>)
未加事务
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [update com.china.user.entity.Employee e set e.email=:email where e.id=:id]; nested exception is java.lang.IllegalStateException:
org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [update com.china.user.entity.Employee e set e.email=:email where e.id=:id]
未加Modifying
@Query("update Employee e set e.email=:email where e.id=:id")
public int updateEmailByID(@Param("id")Long id,@Param("email")String email);
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [update com.china.user.entity.Employee e set e.email=:email where e.id=:id]; nested exception is java.lang.IllegalStateException:
org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [update com.china.user.entity.Employee e set e.email=:email where e.id=:id]
at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:381)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:156)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:417)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:147)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.data.jpa.repository.support.LockModeRepositoryPostProcessor$LockModePopulatingMethodIntercceptor.invoke(LockModeRepositoryPostProcessor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy40.updateEmailByID(Unknown Source)
at com.china.user.biz.impl.EmployeeBizImpl.updateEmailByID(EmployeeBizImpl.java:86)
at com.china.user.biz.impl.EmployeeBizImpl$$FastClassByCGLIB$$7abf59d1.invoke(<generated>)
未加事务
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [update com.china.user.entity.Employee e set e.email=:email where e.id=:id]; nested exception is java.lang.IllegalStateException:
org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [update com.china.user.entity.Employee e set e.email=:email where e.id=:id]
相关文章推荐
- Activity中UI框架基本概念
- [LeetCode] Inorder Successor in BST 二叉搜索树中的中序后继节点
- #!/bin/bash
- CSS教程:div垂直居中的N种方法[转]
- 数据量高并发的数据库优化
- Servlet监听器、过滤器与Spring拦截器
- java就近原则浅析
- 插入排序法(一)
- Flume(NG)架构设计要点及配置实践
- eerTyraniBtrevnI.226
- NSUserDefaults 的使用及注意事项
- Struts2中转发和重定向的区别以及实现方法
- 浏览器兼容性问题大汇总及解决方案
- 发送传真的c#方法_.NET教程
- java.sql.SQLException: ORA-01810: 格式代码出现两次
- JeeSite(2):导入数据,进入系统
- Android项目:手机安全卫士(15)—— 获取手机安装应用与存储空间
- 匹配IP的正则表达式
- VS2008升级到2013中cocos2dx出现的一些小问题
- iOS集成百度地图方法步骤