@Override public PK insert(E entity) { if (!StringUtils.isEmpty(entity.getId())) { if ((entity.getId() instanceof String) && !StringUtils.isEmpty(entity.getId())) { tryValidateProperty(entity.getId().toString().matches("[a-zA-Z0-9_\\-]+"), "id", "只能由数字,字母,下划线,和-组成"); } tryValidateProperty(selectByPk(entity.getId()) == null, "id", entity.getId() + "已存在"); } if (StringUtils.isEmpty(entity.getId()) && getIDGenerator() != null) { entity.setId(getIDGenerator().generate()); } if (entity instanceof RecordCreationEntity) { ((RecordCreationEntity) entity).setCreateTimeNow(); } tryValidate(entity, CreateGroup.class); getDao().insert(entity); return entity.getId(); }
@Override public E deleteByPk(PK pk) { E old = selectByPk(pk); if (old == null) { return null; } if (old instanceof LogicalDeleteEntity) { LogicalDeleteEntity deleteEntity = (LogicalDeleteEntity) old; deleteEntity.setDeleted(true); deleteEntity.setDeleteTime(System.currentTimeMillis()); createUpdate() .set(deleteEntity::getDeleted) .set(deleteEntity::getDeleteTime) .where(GenericEntity.id, pk) .exec(); } else { getDao().deleteByPk(pk); } return old; }
@Override public PK insert(E entity) { if (!StringUtils.isEmpty(entity.getId())) { if ((entity.getId() instanceof String) && !StringUtils.isEmpty(entity.getId())) { tryValidateProperty(entity.getId().toString().matches("[a-zA-Z0-9_\\-]+"), "id", "只能由数字,字母,下划线,和-组成"); } tryValidateProperty(selectByPk(entity.getId()) == null, "id", entity.getId() + "已存在"); } if (StringUtils.isEmpty(entity.getId()) && getIDGenerator() != null) { entity.setId(getIDGenerator().generate()); } if (entity instanceof RecordCreationEntity) { ((RecordCreationEntity) entity).setCreateTimeNow(); } tryValidate(entity, CreateGroup.class); getDao().insert(entity); return entity.getId(); }
@Override public E deleteByPk(PK pk) { E old = selectByPk(pk); if (old == null) { return null; } if (old instanceof LogicalDeleteEntity) { LogicalDeleteEntity deleteEntity = (LogicalDeleteEntity) old; deleteEntity.setDeleted(true); deleteEntity.setDeleteTime(System.currentTimeMillis()); createUpdate() .set(deleteEntity::getDeleted) .set(deleteEntity::getDeleteTime) .where(GenericEntity.id, pk) .exec(); } else { getDao().deleteByPk(pk); } return old; }