我需要实现
的实体save
方法
如果外部服务响应错误,则回滚事务。
我试图做的事
@Transactional
public MyEntity save(MyEntity model) {
// more complex logic here: save if not exists
// omitted for brevity
var savedEntity = recipientRepository.save(entity);
var createdExternalEntity = restClient.createExternalEntity(
savedEntity); // assume savedEntity has savedEntity.id set at this point
// update field for a newly created
savedEntity.setExternalId(createdExternalEntity.getId());
return savedEntity;
}
问题:
savedEntity.setExternalId(createdExternalEntity.getId());
似乎无效
我什至没有尝试模拟restClient.createExternalEntity
并抛出异常以查看事务是否真的回滚
答案 0 :(得分:0)
这是我的错。 savedEntity
是attached
@Transactional
方法中对其字段的任何更改都会反映到数据库中。