我在@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