我在@Async和@Transactional方法中,在我的@Service類中做了一些持久化操作。@Async和@Transactional堅持堅持已經存在的對象JPA
在這種方法中,我們堅持一些對象,然後我們在同一個事務中持久化與這些已經持久化的對象相關的新對象。因爲他認爲這個相關的對象不會被持久化
JPA拋出異常:
a new object was found through a relationship that was not marked cascade PERSIST
這是我的服務類結構:
@Service
public class AsyncOperationsServiceImpl implements AsyncOperationsService {
@Async
@Override
@Transactional
public void save(CampaignDTO campaignDTO) {
// saving related objects here throws an exception
}
}
我猜是交易和異步方法相關的東西,因爲當沒有Async註釋時,相同的代碼正在工作。
我也嘗試在事務註釋中使用傳播,但不工作。
我在這裏錯過了什麼?
謝謝!
事實是,如果我在沒有異步的情況下執行相同的代碼工作正常,所以級聯不應該是必要的......此外,這些對象已經被保留。 – jpadilladev