DBUsersPaginatedReadRepository.java
package es.um.atica.faker.users.adapters.jpa;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import es.um.atica.faker.users.application.service.UsersPaginatedReadService;
import es.um.atica.faker.users.application.service.UsersSearchSpecificationService;
import es.um.atica.faker.users.domain.model.User;
@Service
@org.springframework.context.annotation.Primary
public class DBUsersPaginatedReadRepository implements UsersPaginatedReadService {
@Autowired
private JPAUsersReadRepository jpaUsersReadRepository;
@Autowired
private JPAUsersSpecification jpaUsersSpecification;
@Override
public Iterable<User> findAllUsers(int page, int pageSize) {
return jpaUsersReadRepository.findAll(PageRequest.of(page,pageSize)).map(UserEntity::toModel);
}
@Override
public Iterable<User> findAllUsersSpecification(Object specification, int page, int pageSize) {
return jpaUsersReadRepository.findAll((Specification<UserEntity>)specification,PageRequest.of(page,pageSize)).map(UserEntity::toModel);
}
@Override
public UsersSearchSpecificationService specificationService() {
return jpaUsersSpecification;
}
}