【发布时间】:2012-11-20 06:08:04
【问题描述】:
我正在尝试删除一个实体,如果由于约束而无法删除它,我想将其标记为逻辑删除。
这是我的代码:
@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
有什么方法可以实现这个功能吗?
谢谢。
【问题讨论】:
标签: spring hibernate jpa transactions spring-data