簡體   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