0
我想删除一个实体,如果它因为约束而无法删除,我想标记它以进行逻辑删除。Jpa在删除失败后保存实体
这是我的代码:
@Transactional
public void removeEntity(EntityDto e) {
Entity entity = entityRepository.findOne(e.getId());
try {
entityRepository.delete(e.getId());
entityRepository.flush();
} catch (DataIntegrityViolationException ex) {
logger.debug("Logical removal");
entity.setLogicalRemovalDate(new Date());
entityRepository.save(entity);
}
}
调用save()方法后,我得到这个异常:
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.ObjectDeletedException: deleted instance passed to merge
有什么办法,我可以实现这个功能?
谢谢。
谢谢,通过创建2个事务方法来修复,一个用于逻辑删除,另一个用于物理。 – QQQ