繁体   English   中英

JpaRepository上的@Transactional

[英]@Transactional on a JpaRepository

我正在使用只读数据库来获取我的项目中的一些数据。 我们使用Spring v3和jpa以及hibernate

以下注释是否会使对我的存储库的所有调用都成为只读事务? 或者我是否需要调用存储库的服务层上的注释

package com.blah.jpa;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;

@Transactional(readOnly = true)
public interface ServiceToServerRepository extends JpaRepository<ServiceToServerJPA, String> {

}

所以我们得到了所有的findOne,findAll是免费的。 但任何更新都应该失败,因为它是一个只读事务

基本上应该这样做。 但我通常选择使用Transactional注释标记服务层工件。 无论如何,请查看这篇文章,了解有关使用事务性和Spring Data的更多信息: 如何将@Transactional与Spring Data一起使用?

readOnly标志仅提示在调用方法时只读事务就足够了。

如果您的服务层中的嵌套事务不是只读的,那么它将使用该事务,您将有效地忽略此注释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM