我使用@Transactional
我service
類調用DAO
方法 ,我想知道我怎麼能只使用特定的服務方法讀取。
我是否需要在此服務方法上定義額外的@Transactional
與readonly=true
,或者還有其他方法?如何只讀使用時@Transactional是一流水平
2
A
回答
7
來自Spring API here。
評估方法的事務設置時,派生最多的位置優先。在以下示例中,DefaultFooService類在類級別使用只讀事務的設置進行註釋,但同一類中updateFoo(Foo)方法的@Transactional註釋優先於定義的事務設置在班級一級。
@Transactional(readOnly = true)
public class DefaultFooService implements FooService {
public Foo getFoo(String fooName) {
// do something
}
// these settings have precedence for this method
@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
public void updateFoo(Foo foo) {
// do something
}
}
@Transactional註解的是,指定的接口,類或方法必須具有事務語義的元數據;例如,「在調用此方法時啓動全新的只讀事務,暫停任何現有事務」。默認@Transactional設置如下:
傳播設置爲PROPAGATION_REQUIRED。
隔離級別是ISOLATION_DEFAULT。
交易是可讀寫的。
事務超時默認爲基礎事務系統的默認超時,如果超時不受支持,則默認爲none。
任何RuntimeException觸發回滾,並且任何檢查的異常不會。
相關問題
- 1. Spring @Transactional只讀
- 2. 一流水平getintent
- 3. Spring @Transactional只讀傳播
- 4. Spring @Transactional只有在調用者也是@Transactional時纔有效
- 5. 如何水平使用JQuery
- 6. 使用'|'時,使用VFL的NSLayoutConstraint只能水平工作
- 7. 水平流文本
- 8. 水平只Reisze wx.Dialog
- 9. 與cocos2dx V3.2如何讀的plist水平
- 10. Spring4 Junit4測試:@TransactionConfiguration VS @Transactional,只使用一個還是一起使用?
- 11. 如何在同一水平
- 12. 垂直添加控件而不是水平使用流佈局
- 13. 爲什麼一流水平與空
- 14. 建立一個流體水平導航
- 15. 關於一流水平鎖定
- 16. 如何使水平線使用CSS
- 17. 我們可以使用通配符一流水平在java中
- 18. 水平樹/組織結構圖/ UML使用QUERY或只是CSS?
- 19. 如何使水平在SWT
- 20. 如何使一個GridViewColumn只讀/禁用?
- 21. 如何只水平翻轉圖像而不是canvs?
- 22. lapply(X,as.factor)只返回一個水平
- 23. 水平滾動只有一個div
- 24. 如何使用Css使CellList水平流動而不是垂直流動? (GWT和CSS)
- 25. 設計模式的名稱:得到一流水平一流
- 26. 如何在Delphi中使用水平TListbox?
- 27. 如何使用jquery水平滾動
- 28. 如何使用mysql水平縮放
- 29. 如何使用webview水平渲染pdf
- 30. 如何使用Swift製作水平UICollectionView
當僅使用@Transactional而沒有readonly屬性時,這是否意味着readonly = false默認情況下是什麼? – 2011-12-22 14:14:27
'readonly' [默認爲false](http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/transaction/annotation/Transactional.html#readOnly%28%29) – 2011-12-22 14:23:02
I已經用完整的默認值列表更新了答案。 – ManuPK 2011-12-22 14:25:53