public class BaseRepositoryImpl extends SimpleJpaRepository implements BaseRepository { private final EntityManager entityManager; public BaseRepositoryImpl(Class domainClass, EntityManager entityManager) { super(domainClass, entityManager); this.entityManager = entityManager; } public List findAll(Specification spec, int offset, int maxResults) { return findAll(spec, offset, maxResults, null); } public List findAll(Specification spec, int offset, int maxResults, Sort sort) { TypedQuery query = getQuery(spec, sort); if (offset < 0) { throw new IllegalArgumentException("Offset must not be less than zero!"); } if (maxResults < 1) { throw new IllegalArgumentException("Max results must not be less than one!"); } query.setFirstResult(offset); query.setMaxResults(maxResults); return query.getResultList(); } }