使用 Spring Data JPA,我在同一个事务 (REQUIRES_NEW) 中有下一个流程:
使用此 Spring Data JPA 存储库方法删除一组用户的预测。
@Query(value = "DELETE FROM TRespuestaUsuarioPrediccion resp WHERE resp.idEvento.id = :eventId AND resp.idUsuario.id = :userId") @Modifying void deleteUserPredictions(@Param("userId") int userId, @Param("eventId") int eventId);
插入新用户的预测并保存主对象(事件)。
eventRepository.save(event);
当此服务完成时,提交由 AOP 进行,但仅在第一次尝试中有效……在下一次尝试中无效……
如何在不迭代事件的预测条目并更新其中的每个条目的情况下管理这种情况?
更新
我试过了,但它不起作用(适配器插入了我之前删除的对象):
@Transactional(propagation=Propagation.REQUIRES_NEW, rollbackFor=PlayTheGuruException.class)
private void updateUserPredictions(final TUsuario user, final TEvento event, final SubmitParticipationRequestDTO eventParticipationRequestDTO)
{
eventRepository.deleteUserPredictions(user.getId(), event.getId());
EventAdapter.predictionParticipationDto2Model(user, event, eventParticipationRequestDTO);
eventRepository.save(event);
}