diff --git a/src/main/java/com/cubetiqs/data/service/CrudServiceImpl.java b/src/main/java/com/cubetiqs/data/service/AbstractCrudServiceImpl.java similarity index 69% rename from src/main/java/com/cubetiqs/data/service/CrudServiceImpl.java rename to src/main/java/com/cubetiqs/data/service/AbstractCrudServiceImpl.java index c51eabb..1bbf018 100644 --- a/src/main/java/com/cubetiqs/data/service/CrudServiceImpl.java +++ b/src/main/java/com/cubetiqs/data/service/AbstractCrudServiceImpl.java @@ -1,8 +1,8 @@ package com.cubetiqs.data.service; import com.cubetiqs.data.domain.BaseEntity; -import com.cubetiqs.data.repository.BaseRepository; +import java.io.Serializable; import java.util.List; /** @@ -12,7 +12,7 @@ import java.util.List; * @since 1.0 */ @NoServiceBean -public class CrudServiceImpl> implements CrudService { +public abstract class AbstractCrudServiceImpl, ID extends Serializable> implements CrudService { @Override public List findAll() { return getRepository().findAll(); @@ -35,11 +35,11 @@ public class CrudServiceImpl> implements CrudServic @Override public T update(ID id, T entity) { - T update = read(id); - if (update == null) { - return null; + if (existsById(id)) { + entity.setId(id); + return getRepository().save(entity); } - return getRepository().save(entity); + return null; } @Override @@ -53,7 +53,7 @@ public class CrudServiceImpl> implements CrudServic } @Override - public BaseRepository getRepository() { - throw new ServiceNotImplementException("service must be implement!"); + public boolean existsById(ID id) { + return getRepository().existsById(id); } } diff --git a/src/main/java/com/cubetiqs/data/service/CrudService.java b/src/main/java/com/cubetiqs/data/service/CrudService.java index 2e0b686..8c3e73c 100644 --- a/src/main/java/com/cubetiqs/data/service/CrudService.java +++ b/src/main/java/com/cubetiqs/data/service/CrudService.java @@ -64,4 +64,6 @@ public interface CrudService extends BaseService { * @param ids List of IDs */ void deleteAll(List ids); + + boolean existsById(ID id); } diff --git a/src/main/java/com/cubetiqs/data/service/PagingCrudServiceImpl.java b/src/main/java/com/cubetiqs/data/service/PagingCrudServiceImpl.java index b86a8b2..8278b15 100644 --- a/src/main/java/com/cubetiqs/data/service/PagingCrudServiceImpl.java +++ b/src/main/java/com/cubetiqs/data/service/PagingCrudServiceImpl.java @@ -12,11 +12,11 @@ import java.util.List; * @author sombochea * @see CrudService * @see PagingCrudService - * @see CrudServiceImpl + * @see AbstractCrudServiceImpl * @since 1.0 */ @NoServiceBean -public class PagingCrudServiceImpl extends CrudServiceImpl implements PagingCrudService { +public class PagingCrudServiceImpl extends AbstractCrudServiceImpl implements PagingCrudService { @Override public Page findAll(Pageable pageable) { return getRepository().findAll(pageable);