概述
SpringDataJpa中的事务
前言
今天为大家分享:SpringDataJpa中的事务。
前面讲了SpringDataJpa自定义查询语句(JPQL),请查看博主的SpringDataJpa系列文章。欢迎关注!
操作单个对象的事务
Spring Data提供了默认的事务(Transactionality)处理方式,即所有的查询均声明为只读事务,对于持久化,更新
与删除对象声明为有事务。 参见org.springframework.data.jpa.repository.support.SimpleJpaRepository<T,ID>
@org.springframework.stereotype.Repository
@Transactional(readOnly = true)
public class SimpleJpaRepository<T, ID extends Serializable> implements JpaRepository<T, ID>, JpaSpecificationExecutor<T> {
……
@Transactional
public void delete(ID id) {
delete(findOne(id));
}
……
}
对于自定义的方法,如需改变spring data提供的事务默认方式,可以在方法上注解@Transactional声明,如下示例:
@Transactional
@Modifying
@Query("update Student s set s.studentName=?1 where s.studentId=?2")
int setFixedStudentNameFor(String studentName,int studentId);
涉及多个Repository的事务处理
进行多个Repository操作时,也应该使它们在同一个事务中处理,按照分层架构的思想,这部分属于业务逻辑层,
因此,需要在Service层实现对多个Repository的调用,并在相应的方法上声明事务。
只要在方法的上面加上@Transaction 这个注解就可以轻轻松松的实现事务的操作了。不过这里有几点需要注意的是:
- 这个注解实现的事务管理器是默认的,如果不想要默认是事务管理器,可以自己进行添加。
- 事务的隔离级别也是可以自己设置的。
- 事务的传播行为也是可以自己设置的
好了到这里也该结束了,各位要自己多动手才能学到真正的东西。加油各位
最后
-
更多参考精彩博文请看这里:《陈永佳的博客》
-
喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!
最后
以上就是平常康乃馨为你收集整理的SpringDataJpa中的事务SpringDataJpa中的事务的全部内容,希望文章能够帮你解决SpringDataJpa中的事务SpringDataJpa中的事务所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复