Springdata_Jpa注解开发

来源:互联网 发布:淘宝状态码-2 编辑:程序博客网 时间:2024/06/06 18:02

在项目的进行中需要通过 @Modifying 注解完成修改和删除操作,但是不支持查询和新增操作

那么接下来就说下@modifying注解开发的使用

@Modifying @Query("update Person set email = :email where lastName =:lastName")

voidupdatePersonEmailByLastName(@Param("lastName")String lastName,@Param("email")String email);

             执行报错,异常如下,

           关键看这行 Caused by: javax.persistence.TransactionRequiredException: Executing an update/delete query,说明我们缺少事务配置。

可以在service实现类上面添加事物注解,也可以在方法上面添加事物注解,或者在xml 文件中添加service事物控制器的管理

@Service 

@Transactional

 

<context:component-scan base-package="com.itcast.springdata.service"></context:component-scan>



总结modifying注解开发的使用

(1)可以通过自定义的 JPQL 完成 UPDATE 和 DELETE 操作。 注意: JPQL 不支持使用 INSERT; 
(2)在 @Query 注解中编写 JPQL 语句, 但必须使用 @Modifying 进行修饰. 以通知 SpringData, 这是一个 UPDATE 或 DELETE 操作 
(3)UPDATE 或 DELETE 操作需要使用事务,此时需要定义 Service 层,在 Service 层的方法上添加事务操作; 
(4)默认情况下, SpringData 的每个方法上有事务, 但都是一个只读事务。 他们不能完成修改操作。





原创粉丝点击