spring data jpa执行update和delete语句时报错处理
2017-04-19 16:16
344 查看
之前项目中使用spring data jpa时,遇到删除记录的需求时,主要利用spring data中自带的delete()方法处理,最近在dao层使用delete sql语句时报错,代码如下:
报错提示:
最后查阅资料发现了解决办法,同时加上注解@Modifying和Transactional
加上两个注解后问题成功解决了,只加上其中任意一个注解还是会报错,只有同时加上两个注解时才可以。
@Modifying注解与@Query一起使用表示将查询操作标识为修改查询,这样框架最终会生成一个更新的操作,而非查询
@Transactional:spring整合jpa时用于注释事务
@Query(value = "delete parcel,parcel_file,ms_files,t_order,route " + "from parcel left join route on parcel.route_id = route.id" + " left join t_order on t_order.parcel_id = parcel.id" + " left join parcel_file on parcel.id = parcel_file.parcel_id" + " left join ms_files on parcel_file.file_uuid = ms_files.uuid " + "where parcel.id = ?1", nativeQuery = true) void deleteByParcelId(Long parcelId);
报错提示:
最后查阅资料发现了解决办法,同时加上注解@Modifying和Transactional
@Modifying
@Transactional
@Query(value = "delete parcel,parcel_file,ms_files,t_order,route " + "from parcel left join route on parcel.route_id = route.id" + " left join t_order on t_order.parcel_id = parcel.id" + " left join parcel_file on parcel.id = parcel_file.parcel_id" + " left join ms_files on parcel_file.file_uuid = ms_files.uuid " + "where parcel.id = ?1", nativeQuery = true) void deleteByParcelId(Long parcelId);
加上两个注解后问题成功解决了,只加上其中任意一个注解还是会报错,只有同时加上两个注解时才可以。
@Modifying注解与@Query一起使用表示将查询操作标识为修改查询,这样框架最终会生成一个更新的操作,而非查询
@Transactional:spring整合jpa时用于注释事务
相关文章推荐
- spring data jpa 执行sql
- Update an entity using spring data JPA
- spring data jpa 想使用EntityManager 对sql 进行处理四种方式(第四种本人改写的)
- [置顶] 实践spring data jpa:Executing an update/delete query........
- spring data jpa写update
- spring data jpa的update操作
- 【redis】5.spring boot项目中,直接在spring data jpa的Repository层使用redis +redis注解@Cacheable直接在Repository层使用,报错问题处理Null key returned for cache operation
- Spring-Data-JPA 自定义查询方法底层如何处理
- springData jpa update delete
- spring data jpa 执行sql
- hibernate、springdatajpa等对于相同列的处理
- 最近在研究Spring Data JPA,大家都来说说感受~~ - Spring,JPA - Java - ITeye论坛
- 基于maven的多框架和多视图融合技术(Struts1、Struts2、Spring、SpringMVC、Hibernate、Ibatis、MyBatis、Spring Data JPA、DWR)
- 使用 Spring Data JPA 简化 JPA 开发
- 使用 Spring Data JPA 简化 JPA 开发—Spring Data JPA 开发指南
- 使用 Spring Data JPA 简化 JPA 开发
- ASP.NET MVC3 中整合 NHibernate3.3、Spring.NET2.0 使用AOP执行事务处理
- spring test + junit 4 + jpa 2.0 定制JPA执行环境/配置
- 使用 Spring Data JPA 简化 JPA 开发
- Spring Data JPA的简单使用