class DefaultPersistenceManager implements PersistenceManager<T, I> {

    @Override
    public PagedResult<T> search(final MultiplePagedQuerySearch<T> request) {
    	verify(DaoMethod.MULTIPLE_GET, request);
    	
    	TypedQuery<T> typedQuery = createQuery(request.getQuery().getQuery(), request.getParameters(), request.getClazz());
        typedQuery.setFirstResult(request.getOffset());
        typedQuery.setMaxResults(request.getLimit());

        Long count = getQueryCount(request.getQuery().getQuery(), request.getParameters(), request.getClazz());

        PagedResult<T> result = new PagedResult<T>(request.getOffset(), request.getLimit(), count, typedQuery.getResultList());

        return result;
    }

}