Skip to content
Snippets Groups Projects
Commit 52913535 authored by Martin Slovík's avatar Martin Slovík
Browse files

Implementing BaseService and its generic implementation BaseServiceImpl

parent e25d0c53
No related branches found
No related tags found
No related merge requests found
package cz.muni.fi.pa165.core.service.common;
import java.util.List;
import java.util.Optional;
/**
* BaseService for common CRUD operations
* @param <E> Entity
* @param <K> Key
* @author martinslovik
*/
public interface BaseService<E, K> {
E save(E entity);
Optional<E> findById(K id);
List<E> findAll();
void deleteById(K id);
void deleteAll();
}
package cz.muni.fi.pa165.core.service.common;
import cz.muni.fi.pa165.core.data.domain.common.DomainEntity;
import cz.muni.fi.pa165.core.data.repository.common.BaseRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public abstract class BaseServiceImpl<E extends DomainEntity, K> implements BaseService<E, K> {
private final BaseRepository<E, K> repository;
@Autowired
protected BaseServiceImpl(BaseRepository<E, K> repository) {
this.repository = repository;
}
@Override
public E save(E entity) {
return repository.save(entity);
}
@Override
public Optional<E> findById(K id) {
return repository.findById(id);
}
@Override
public List<E> findAll() {
return (List<E>) repository.findAll();
}
@Override
public void deleteById(K id) {
repository.deleteById(id);
}
@Override
public void deleteAll() {
repository.deleteAll();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment