首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用@Transactional(readOnly = true)有哪些优点?

使用@Transactional(readOnly = true)有哪些优点?
EN

Stack Overflow用户
提问于 2017-07-08 09:46:55
回答 1查看 14.4K关注 0票数 20

我是初学者,正如我所理解的,@Transactional只需确保用@Transactional注释的类或方法的所有内部工作都封装在一个事务中,来自外部源的所有调用都会创建一个新事务,但是为什么我们实际上需要在下面的存储库中使用这些注释,以及在常见情况下将其与readOnly = true一起使用有什么好处呢?这是使用 Spring & Hibernate (https://github.com/spring-projects/spring-petclinic)的Spring宠物诊所示例应用程序。

代码语言:javascript
运行
复制
/**
 * Repository class for <code>Pet</code> domain objects All method names are compliant with Spring Data naming
 * conventions so this interface can easily be extended for Spring Data See here: http://static.springsource.org/spring-data/jpa/docs/current/reference/html/jpa.repositories.html#jpa.query-methods.query-creation
 *
 * @author Ken Krebs
 * @author Juergen Hoeller
 * @author Sam Brannen
 * @author Michael Isvy
 */
public interface PetRepository extends Repository<Pet, Integer> {

    /**
     * Retrieve all {@link PetType}s from the data store.
     * @return a Collection of {@link PetType}s.
     */
    @Query("SELECT ptype FROM PetType ptype ORDER BY ptype.name")
    @Transactional(readOnly = true)
    List<PetType> findPetTypes();

    /**
     * Retrieve a {@link Pet} from the data store by id.
     * @param id the id to search for
     * @return the {@link Pet} if found
     */
    @Transactional(readOnly = true)
    Pet findById(Integer id);

    /**
     * Save a {@link Pet} to the data store, either inserting or updating it.
     * @param pet the {@link Pet} to save
     */
    void save(Pet pet);

}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44984781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档