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