2009-08-05 22 views
4

我有一種方法可以返回大量數據,我應該使用此方法的@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)。該方法執行一個JPA查詢,加載一個表的全部內容(大約1000行)。EJB 3用於只讀方法的事務屬性

+0

無狀態Bean返回或僅處理1000行? – 2009-08-09 09:45:13

+0

只是返回,從數據庫加載並返回 – 2009-08-10 13:33:49

回答

3

此方法的客戶端 - 是否已經在事務中?當您使用NotSupported時,調用方事務將被暫停。如果沒有,我會說,只是把永不作爲交易類型。因爲來電者知道他們不應該從交易中調用這種方法,所以永遠不會更好。更直接的合同。

我們總是使用Never作爲進行更多處理的方法,以便開發人員知道如果他們已經參與了事務處理,就不要致電。希望能幫助到你。

2

我會不同意,因爲很少發生用戶不在幾乎交易中的所有系統。最好的方法是使用不支持,以便如果調用者已經在任何交易中,交易將被暫停。從來沒有麻煩,除非你有一系列的呼叫都在NO TRANSACTION範圍內。總之,NOT SUPPORTED是一種應該使用的類型。