Compare commits

...

2 Commits

3 changed files with 22 additions and 10 deletions

View File

@ -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<T, ID extends BaseEntity<ID>> implements CrudService<T, ID> {
public abstract class AbstractCrudServiceImpl<T extends BaseEntity<ID>, ID extends Serializable> implements CrudService<T, ID> {
@Override
public List<T> findAll() {
return getRepository().findAll();
@ -35,11 +35,11 @@ public class CrudServiceImpl<T, ID extends BaseEntity<ID>> 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<T, ID extends BaseEntity<ID>> implements CrudServic
}
@Override
public BaseRepository<T, ID> getRepository() {
throw new ServiceNotImplementException("service must be implement!");
public boolean existsById(ID id) {
return getRepository().existsById(id);
}
}

View File

@ -1,9 +1,11 @@
package com.cubetiqs.data.service;
import com.cubetiqs.data.domain.BaseEntity;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import java.io.Serializable;
import java.util.List;
/**
@ -12,11 +14,13 @@ import java.util.List;
* @author sombochea
* @see CrudService
* @see PagingCrudService
* @see CrudServiceImpl
* @see AbstractCrudServiceImpl
* @since 1.0
*/
@NoServiceBean
public class PagingCrudServiceImpl<T, ID> extends CrudServiceImpl<T, ID> implements PagingCrudService<T, ID> {
public abstract class AbstractPagingCrudServiceImpl<T extends BaseEntity<ID>, ID extends Serializable>
extends AbstractCrudServiceImpl<T, ID>
implements PagingCrudService<T, ID> {
@Override
public Page<T> findAll(Pageable pageable) {
return getRepository().findAll(pageable);

View File

@ -64,4 +64,12 @@ public interface CrudService<T, ID> extends BaseService<T, ID> {
* @param ids List of IDs
*/
void deleteAll(List<ID> ids);
/**
* Check entity exists within ID
*
* @param id ID
* @return boolean
*/
boolean existsById(ID id);
}