我一直在尋找Spring Roo生成的代碼,並且我注意到它創建的persist()
方法給出Propagation.REQUIRES_NEW
。默認傳播不會足夠嗎?爲什麼Spring Roo會持續存在()Propogation.REQUIRES_NEW
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void Entity.persist() {
if (this.entityManager == null) this.entityManager = entityManager();
this.entityManager.persist(this);
}
一些附加信息。下面是生成此代碼的roo日誌:
// Spring Roo 1.1.0.RELEASE [rev 793f2b0] log opened at 2011-02-04 10:01:02
project --topLevelPackage org.sotest.sscce --projectName Test --java 6
// Spring Roo 1.1.0.RELEASE [rev 793f2b0] log closed at 2011-02-04 10:01:04
// Spring Roo 1.1.0.RELEASE [rev 793f2b0] log opened at 2011-02-04 10:01:06
persistence setup --database GOOGLE_APP_ENGINE --provider DATANUCLEUS
entity --class ~.entities.Entity
exit
// Spring Roo 1.1.0.RELEASE [rev 793f2b0] log closed at 2011-02-04 10:02:55
我正在使用GA提供程序的GAE數據庫。我只是創建了一個實體,除了發佈上面的roo命令外,我沒有觸及任何文件。當我打開Entity_Roo_Entity.aj時,我得到上面的代碼。
我會再次嘗試使用最新版本的Roo並驗證相同的輸出。我也會在Roo相關的論壇上發佈這個問題。
更新:相同的代碼與袋鼠1.1.1(最新版本)
增加了一些解釋來解決您的問題。可能與GAE/DN有關,或者可能是Roo錯誤。我只想知道REQUIRES_NEW是否有充分的理由,因爲它會影響我的其他一些非roo項目。 – Pace 2011-02-04 17:06:53