2013-05-03 83 views
0

如果一個方法的註解@Transactional(readOnly = true),有沒有辦法允許內部方法編寫?Spring - 通過@Transactional(readOnly = true)方法編寫的內部方法

例子:

Class A { 
    @Transactional(readOnly = true) 
    public void readFoo(){ 
     b.writeFoo(); 
    } 
} 

Class B { 
    public void writeFoo(){} 
} 

我知道這有點違背了只讀註釋的目的,但我只是想知道,如果有一種方式。

回答

0

@Transactional(propagation = Propagation.REQUIRES_NEW)爲我工作。需要謹慎的一點是,如果方法需要休眠的對象,這是行不通的。這隻適用於您檢索休眠對象並在Propagation.REQUIRES_NEW方法中進行更改的情況。

0

readOnly@Transaction註釋的屬性只是提示事務管理器。這取決於您用於管理交易的基礎技術。它可以只是優化事務的只讀性能(Hibernate),或者完全忽略readOnly屬性。

我認爲,如果你註釋writeFoo()即這樣

@Transactional(readOnly = false, propagation = Propagation.NESTED) 

它可以在父只讀交易獨立行事,沒有問題寫。但我沒有親自測試過。

相關問題