SpringDataJpa中的事务

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 这个注解就可以轻轻松松的实现事务的操作了。不过这里有几点需要注意的是:

  • 这个注解实现的事务管理器是默认的,如果不想要默认是事务管理器,可以自己进行添加。
  • 事务的隔离级别也是可以自己设置的。
  • 事务的传播行为也是可以自己设置的

好了到这里也该结束了,各位要自己多动手才能学到真正的东西。加油各位


最后

  • 更多参考精彩博文请看这里:《陈永佳的博客》

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈永佳

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值