protected void restoreEntity(Entity entity, String storeName) { EntityManager em = persistence.getEntityManager(storeName); Entity reloadedEntity = em.find(entity.getClass(), entity.getId()); if (reloadedEntity != null && ((SoftDelete) reloadedEntity).isDeleted()) { log.info("Restoring deleted entity " + entity); Date deleteTs = ((SoftDelete) reloadedEntity).getDeleteTs(); ((SoftDelete) reloadedEntity).setDeleteTs(null); em.merge(reloadedEntity); restoreDetails(reloadedEntity, deleteTs, storeName); } }
@Override public void remove(Entity entity) { log.debug("remove {}", entity); if (PersistenceHelper.isDetached(entity)) { entity = internalMerge(entity); } if (entity instanceof SoftDelete && softDeletion) { ((SoftDelete) entity).setDeleteTs(timeSource.currentTimestamp()); ((SoftDelete) entity).setDeletedBy(auditInfoProvider.getCurrentUserLogin()); } else { delegate.remove(entity); if (entity instanceof BaseGenericIdEntity) { BaseEntityInternalAccess.setRemoved((BaseGenericIdEntity) entity, true); } } }
if (!PersistenceHelper.isNew(commitInstance)) { if (commitInstance instanceof SoftDelete && ((SoftDelete) commitInstance).isDeleted()) { ((SoftDelete) commitInstance).setDeleteTs(null);