Example usage for org.springframework.data.domain PageImpl PageImpl

List of usage examples for org.springframework.data.domain PageImpl PageImpl

Introduction

In this page you can find the example usage for org.springframework.data.domain PageImpl PageImpl.

Prototype

public PageImpl(List<T> content, Pageable pageable, long total) 

Source Link

Document

Constructor of PageImpl .

Usage

From source file:lodsve.mongodb.core.GenericMongoRepository.java

public Page<T> findAll(final Pageable pageable) {
    Long count = count();//from  ww  w  .java 2s . c  om
    List<T> list = findAll(new Query().with(pageable));

    return new PageImpl<>(list, pageable, count);
}

From source file:uk.ac.ebi.ep.data.repositories.EnzymePortalSummaryRepositoryImpl.java

@Override
public Page<EnzymePortalSummary> findEnzymeSummariesByAccessions(List<String> accessions, Pageable pageable) {
    EntityGraph eGraph = entityManager.getEntityGraph("summary.graph");
    eGraph.addAttributeNodes("uniprotAccession");

    eGraph.addSubgraph("uniprotAccession").addAttributeNodes("enzymePortalPathwaysSet",
            "enzymePortalReactionSet", "enzymePortalSummarySet", "enzymePortalDiseaseSet",
            "enzymePortalCompoundSet", "uniprotXrefSet", "enzymePortalEcNumbersSet");
    JPAQuery query = new JPAQuery(entityManager);
    query.setHint("javax.persistence.fetchgraph", eGraph);

    BooleanBuilder builder = new BooleanBuilder();
    accessions.stream().forEach((accession) -> {

        builder.or($.uniprotAccession.accession.equalsIgnoreCase(accession));

    });// w  w  w  . ja v a2  s. c  om
    query.from($).where(builder);
    List<EnzymePortalSummary> result = query.distinct().list($).parallelStream().distinct()
            .collect(Collectors.toList());

    return new PageImpl(result, pageable, result.size());

}

From source file:org.wallride.repository.CommentRepositoryImpl.java

@Override
public Page<Comment> search(CommentSearchRequest request, Pageable pageable) {
    FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
    QueryBuilder qb = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(Comment.class)
            .get();//  ww  w  .  j a v  a  2  s.c  o m

    @SuppressWarnings("rawtypes")
    BooleanJunction<BooleanJunction> junction = qb.bool();
    junction.must(qb.all().createQuery());

    if (StringUtils.hasText(request.getKeyword())) {
        Analyzer analyzer = fullTextEntityManager.getSearchFactory().getAnalyzer("synonyms");
        String[] fields = new String[] { "authorName", "content" };
        MultiFieldQueryParser parser = new MultiFieldQueryParser(fields, analyzer);
        parser.setDefaultOperator(QueryParser.Operator.AND);
        Query query = null;
        try {
            query = parser.parse(request.getKeyword());
        } catch (ParseException e1) {
            try {
                query = parser.parse(QueryParser.escape(request.getKeyword()));
            } catch (ParseException e2) {
                throw new RuntimeException(e2);
            }
        }
        junction.must(query);
    }

    if (StringUtils.hasText(request.getLanguage())) {
        junction.must(qb.keyword().onField("post.language").matching(request.getLanguage()).createQuery());
    }

    if (request.getPostId() != null) {
        junction.must(qb.keyword().onField("post.id").matching(request.getPostId()).createQuery());
    }

    if (request.getApproved() != null) {
        junction.must(qb.keyword().onField("approved").matching(request.getApproved()).createQuery());
    }

    Query searchQuery = junction.createQuery();

    Session session = (Session) entityManager.getDelegate();
    Criteria criteria = session.createCriteria(Comment.class).setFetchMode("post", FetchMode.JOIN)
            .setFetchMode("author", FetchMode.JOIN);

    Sort sort = null;
    if (pageable.getSort() != null) {
        if (pageable.getSort().getOrderFor("date") != null) {
            Order order = pageable.getSort().getOrderFor("date");
            sort = new Sort(
                    new SortField("sortDate", SortField.Type.STRING,
                            order.getDirection().equals(Direction.DESC)),
                    new SortField("sortId", SortField.Type.LONG, order.getDirection().equals(Direction.DESC)));
        }
    }

    if (sort == null) {
        sort = new Sort(new SortField("sortDate", SortField.Type.STRING),
                new SortField("sortId", SortField.Type.LONG));
    }

    FullTextQuery persistenceQuery = fullTextEntityManager.createFullTextQuery(searchQuery, Comment.class)
            .setCriteriaQuery(criteria).setSort(sort);
    persistenceQuery.setFirstResult(pageable.getOffset());
    persistenceQuery.setMaxResults(pageable.getPageSize());

    int resultSize = persistenceQuery.getResultSize();

    @SuppressWarnings("unchecked")
    List<Comment> results = persistenceQuery.getResultList();
    return new PageImpl<>(results, pageable, resultSize);
}

From source file:org.openlmis.fulfillment.repository.custom.impl.OrderRepositoryImpl.java

private Page<Order> search(OrderSearchParams params, Set<UUID> processingPeriodIds, Pageable pageable,
        Set<UUID> availableSupplyingFacilities, Set<UUID> availableRequestingFacilities) {
    CriteriaBuilder builder = entityManager.getCriteriaBuilder();

    CriteriaQuery<Order> query = builder.createQuery(Order.class);
    query = prepareQuery(query, params, processingPeriodIds, pageable, false, availableSupplyingFacilities,
            availableRequestingFacilities);
    CriteriaQuery<Long> countQuery = builder.createQuery(Long.class);
    countQuery = prepareQuery(countQuery, params, processingPeriodIds, pageable, true,
            availableSupplyingFacilities, availableRequestingFacilities);

    Pageable page = null != pageable ? pageable : new PageRequest(0, Integer.MAX_VALUE);

    Long count = entityManager.createQuery(countQuery).getSingleResult();
    List<Order> result = entityManager.createQuery(query).setMaxResults(page.getPageSize())
            .setFirstResult(page.getPageSize() * page.getPageNumber()).getResultList();

    return new PageImpl<>(result, page, count);
}

From source file:org.venice.piazza.common.hibernate.dao.deployment.DeploymentDaoImpl.java

public Page<DeploymentEntity> getDeploymentListByCapabilitiesUrl(String keyword, Pagination pagination) {
    // Query//w  w  w . jav  a 2  s.  com
    String queryString = String.format(KEYWORD_CAPABILITIES_URL_QUERY,
            Direction.fromString(pagination.getOrder()));
    Query query = entityManager.createNativeQuery(queryString, DeploymentEntity.class);
    query.setParameter(1, String.format(WILDCARD_STRING_QUERY, keyword));
    query.setParameter(2, pagination.getSortBy());
    query.setParameter(3, pagination.getPerPage());
    query.setParameter(4, pagination.getPage() * pagination.getPerPage());
    List<DeploymentEntity> results = query.getResultList();
    // Count
    query = entityManager.createNativeQuery(KEYWORD_CAPABILITIES_URL_QUERY_COUNT);
    query.setParameter(1, String.format(WILDCARD_STRING_QUERY, keyword));
    long count = ((BigInteger) query.getSingleResult()).longValue();
    return new PageImpl<DeploymentEntity>(results, null, count);
}

From source file:org.oncoblocks.centromere.mongodb.GenericMongoRepository.java

/**
 * {@link RepositoryOperations#findAll}//  w  w w  . ja  va 2 s  .c  o  m
 */
public Page<T> find(Iterable<QueryCriteria> queryCriterias, Pageable pageable) {
    Criteria criteria = MongoQueryUtils.getQueryFromQueryCriteria(queryCriterias);
    Query query = new Query();
    if (criteria != null) {
        query.addCriteria(criteria);
    }
    List<T> entities = mongoOperations.find(query.with(pageable), model);
    long count = count(queryCriterias);
    return new PageImpl<T>(entities, pageable, count);
}

From source file:org.terasoluna.gfw.functionaltest.app.el.ElController.java

@RequestMapping(value = "search", method = RequestMethod.GET)
public String search(CustomerSearchCriteria criteria, @PageableDefault Pageable pageable, Model model) {

    // Create Dummy Data
    List<String> customerList = new ArrayList<String>();
    for (int i = 1; i <= 10; i++) {
        customerList.add("Customer");
    }/*from  www .  jav  a2s  .  c  o m*/

    Page<String> customer = new PageImpl<String>(customerList, pageable, 100);

    model.addAttribute("page", customer);

    return "el/beanQueryOutput";
}

From source file:ru.portal.services.TableServiceImpl.java

@Override
public Page<HashMap<String, String>> findAll(String tableOrViewName, Pageable pageable) {

    List<HashMap<String, String>> result = new ArrayList<>();

    EntityType<?> type = null;/*from  w  w w.  j a v a2s.  c o m*/
    Set<EntityType<?>> set = em.getEntityManagerFactory().getMetamodel().getEntities();
    for (EntityType<?> entityType : set) {
        if (entityType.getBindableJavaType().getAnnotation(PortalTable.class) != null) {
            if (entityType.getBindableJavaType().getName().equals(tableOrViewName)) {
                type = entityType;
                break;
            }
        }
    }

    Long totalRows = 0L;

    if (type != null) {
        Class<?> bindableJavaType = type.getBindableJavaType();

        //count
        CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
        CriteriaQuery<Long> countQuery = criteriaBuilder.createQuery(Long.class);
        countQuery.select(criteriaBuilder.count(countQuery.from(bindableJavaType)));
        totalRows = em.createQuery(countQuery).getSingleResult();

        //select
        CriteriaBuilder cb = em.getCriteriaBuilder();
        CriteriaQuery<?> cq = cb.createQuery(bindableJavaType);
        Root<?> root = cq.from(bindableJavaType);
        //          cq.select(root);
        if (pageable == null) {
            pageable = new PageRequest(0, 50);
        }

        TypedQuery<?> query = em.createQuery(cq);

        query.setFirstResult(pageable.getPageNumber() * pageable.getPageSize());
        query.setMaxResults(pageable.getPageSize());
        List<?> all = query.getResultList();

        List<String> columns = getTableOrViewMetaData(tableOrViewName);

        for (Object object : all) {

            HashMap<String, String> res = new HashMap<>(columns.size());
            Class<? extends Object> clazz = object.getClass();
            for (String fieldName : columns) {
                try {
                    Field field = clazz.getDeclaredField(fieldName);
                    field.setAccessible(true);
                    Object fieldValue = field.get(object);
                    res.put(fieldName, fieldValue.toString());
                    //TODO cast data integer long etc
                } catch (NoSuchFieldException | SecurityException | IllegalArgumentException
                        | IllegalAccessException ex) {
                    Logger.getLogger(TableServiceImpl.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            result.add(res);
        }
    }

    PageImpl<HashMap<String, String>> list = new PageImpl<>(result, pageable, totalRows);
    return list;
}

From source file:org.venice.piazza.common.hibernate.dao.dataresource.DataResourceDaoImpl.java

public Page<DataResourceEntity> getDataResourceListByUser(String userName, Pagination pagination) {
    // Query/*from w ww. j a va2 s .c  om*/
    String queryString = String.format(USERNAME_DATARESOURCE_QUERY,
            Direction.fromString(pagination.getOrder()));
    Query query = entityManager.createNativeQuery(queryString, DataResourceEntity.class);
    query.setParameter(1, String.format(WILDCARD_STRING_QUERY, userName));
    query.setParameter(2, pagination.getSortBy());
    query.setParameter(3, pagination.getPerPage());
    query.setParameter(4, pagination.getPage() * pagination.getPerPage());
    List<DataResourceEntity> results = query.getResultList();
    // Count
    query = entityManager.createNativeQuery(USERNAME_DATARESOURCE_QUERY_COUNT);
    query.setParameter(1, String.format(WILDCARD_STRING_QUERY, userName));
    long count = ((BigInteger) query.getSingleResult()).longValue();
    return new PageImpl<DataResourceEntity>(results, null, count);
}

From source file:org.meruvian.yama.webapi.service.RestUserService.java

@Override
public Page<Role> findRoleByUser(String username, Pageable pageable) {
    User u = getUserByUsernameOrId(username);
    Page<UserRole> userRoles = userRoleRepository.findByUserId(u.getId(), pageable);

    List<Role> roles = new ArrayList<Role>();
    for (UserRole ur : userRoles) {
        roles.add(ur.getRole());//from   w  w w  .  j  a v  a 2  s.c o  m
    }

    return new PageImpl<Role>(roles, pageable, userRoles.getTotalElements());
}