【发布时间】:2017-10-10 19:18:29
【问题描述】:
我正在我的@Service 类中的@Async 和@Transactional 方法中执行一些持久化操作。
在这个方法中,我们持久化一些对象,然后我们在同一个事务中持久化与这些已经持久化的对象相关的新对象。
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
}
}
我猜这与 Transactions 和 Async 方法有关,因为当没有 Async 注释时,相同的代码正在工作。
我也尝试在 Transactional 注释中使用传播,但不起作用。
我在这里错过了什么?
谢谢!
【问题讨论】:
标签: java spring jpa asynchronous transactions