From d0167dcc641a7597c11e18d5652928c472bed45c Mon Sep 17 00:00:00 2001 From: johnniang <1340692778@qq.com> Date: Tue, 19 Feb 2019 20:50:13 +0800 Subject: [PATCH] Add CrudService interface --- .../halo/service/base/AbstractService.java | 11 +++ .../ryanc/halo/service/base/CrudService.java | 76 +++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 src/main/java/cc/ryanc/halo/service/base/AbstractService.java create mode 100644 src/main/java/cc/ryanc/halo/service/base/CrudService.java diff --git a/src/main/java/cc/ryanc/halo/service/base/AbstractService.java b/src/main/java/cc/ryanc/halo/service/base/AbstractService.java new file mode 100644 index 000000000..e108a6d8e --- /dev/null +++ b/src/main/java/cc/ryanc/halo/service/base/AbstractService.java @@ -0,0 +1,11 @@ +package cc.ryanc.halo.service.base; + +/** + * Abstract service implementation. + * + * @param id type + * @param domain type + */ +public abstract class AbstractService implements CrudService { + +} diff --git a/src/main/java/cc/ryanc/halo/service/base/CrudService.java b/src/main/java/cc/ryanc/halo/service/base/CrudService.java new file mode 100644 index 000000000..896f2f68c --- /dev/null +++ b/src/main/java/cc/ryanc/halo/service/base/CrudService.java @@ -0,0 +1,76 @@ +package cc.ryanc.halo.service.base; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; + +import java.util.List; +import java.util.Map; +import java.util.Optional; + +/** + * CrudService interface contained public methods. + * + * @param id type + * @param domain type + * @author johnniang + */ +public interface CrudService { + + // **************** Select + + List listAll(); + + List listAll(Sort sort); + + Page listAll(Pageable pageable); + +//

List

listAll(Class

projectionType); +// +//

List

listAll(Class

projectionType, Sort sort); +// +//

Page

listAll(Class

projectionType, Pageable pageable); + + List listAllByIds(Iterable ids); + + List listAllByIds(Iterable ids, Sort sort); + + Map listAllByIdsAsMap(Iterable ids); + + Map listAllByIdsAsMap(Iterable ids, Sort sort); + + Optional fetchById(ID id); + + DOMAIN getById(ID id); + + DOMAIN getNullableById(ID id); + + boolean existsById(ID id); + + void mustExistById(ID id); + + + // **************** Create + DOMAIN create(DOMAIN domain); + + List createInBatch(Iterable domains); + + + // **************** Update + + DOMAIN update(DOMAIN domain); + + List updateInBatch(Iterable domains); + + + // **************** Delete + + void removeById(ID id); + + void remove(DOMAIN domain); + + void removeInBatch(Iterable ids); + + void removeAll(Iterable domains); + +}