SpringDataJpa中的事务

导读:本篇文章讲解 SpringDataJpa中的事务,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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

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

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


最后

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

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


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97636.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!