Example usage for org.springframework.data.domain Page getTotalElements

List of usage examples for org.springframework.data.domain Page getTotalElements

Introduction

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

Prototype

long getTotalElements();

Source Link

Document

Returns the total amount of elements.

Usage

From source file:org.terasoluna.gfw.web.pagination.PaginationTagTest.java

/**
 * customized case 3.//from   ww w .j av  a2  s  .  c o m
 * 
 * <pre>
 * -maxDisplayCount
 * </pre>
 */
@Test
public void testDoStartTagInternal13() throws Exception {

    Page<String> page = mock(Page.class);
    // set mock behavior
    when(page.getNumber()).thenReturn(20);
    when(page.getSize()).thenReturn(10);
    when(page.getTotalPages()).thenReturn(100);
    when(page.getTotalElements()).thenReturn(1000L);

    tag.setPage(page);

    // customize
    tag.setMaxDisplayCount(5);

    int ret = tag.doStartTagInternal();

    assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE));
    String expected = "<ul><li><a href=\"?page=0&size=10\">&lt;&lt;</a></li><li><a href=\"?page=19&size=10\">&lt;</a></li><li><a href=\"?page=18&size=10\">19</a></li><li><a href=\"?page=19&size=10\">20</a></li><li class=\"active\"><a href=\"javascript:void(0)\">21</a></li><li><a href=\"?page=21&size=10\">22</a></li><li><a href=\"?page=22&size=10\">23</a></li><li><a href=\"?page=21&size=10\">&gt;</a></li><li><a href=\"?page=99&size=10\">&gt;&gt;</a></li></ul>";
    assertThat(getOutput(), is(expected));
}

From source file:com.company.project.data.elasticsearch.service.UserESServiceTest.java

public void testRepositoryQueries() {
    System.out.println("testRepository");

    //elasticsearchTemplate.deleteIndex("xuseridx");
    elasticsearchTemplate.deleteIndex(User.class);
    elasticsearchTemplate.createIndex(User.class);
    //elasticsearchTemplate.createIndex(User.class, user);
    //elasticsearchTemplate.createIndex("xuseridx");

    elasticsearchTemplate.putMapping(User.class);
    elasticsearchTemplate.refresh(User.class, true);

    String id = UUID.randomUUID().toString();
    User user = new User();
    user.setId(id);//from  w  w  w  . jav  a 2 s . com
    user.setName("user-" + id);
    user.setRole(1l);
    user.setPath("1.0");
    Map<Integer, Collection<String>> userFilter = new HashMap<>();
    userFilter.put(1, Arrays.asList("filter1", "filter2"));
    userFilter.put(2, Arrays.asList("filter11", "filter12"));
    user.setFilter(userFilter);
    userRepository.save(user);

    boolean exists = userRepository.exists(user.getId());
    assertTrue(exists);

    List<User> users = new ArrayList<>();
    id = UUID.randomUUID().toString();
    user = new User();
    user.setId(id);
    user.setName("user-" + id);
    user.setRole(2l);
    user.setPath("1.1.0");
    userFilter = new HashMap<>();
    userFilter.put(1, Arrays.asList("filter1", "filter3"));
    userFilter.put(2, Arrays.asList("filter11", "filter13"));
    user.setFilter(userFilter);
    users.add(user);
    //userRepository.save(user);
    id = UUID.randomUUID().toString();
    user = new User();
    user.setId(id);
    user.setName("user-" + id);
    user.setRole(3l);
    user.setPath("1.1.1.0");
    userFilter = new HashMap<>();
    userFilter.put(1, Arrays.asList("filter1", "filter4"));
    userFilter.put(2, Arrays.asList("filter11", "filter14"));
    user.setFilter(userFilter);
    users.add(user);
    //userRepository.save(user);
    userRepository.save(users); //bulk save
    exists = userRepository.exists(user.getId());
    assertTrue(exists);

    elasticsearchTemplate.refresh(User.class, true);

    GetQuery getQuery = new GetQuery();
    getQuery.setId(id);
    User userIndexed = elasticsearchTemplate.queryForObject(getQuery, User.class);
    assertEquals("user-" + id, "" + userIndexed.getName());
    assertEquals(id, "" + userIndexed.getId());
    assertEquals("3", "" + userIndexed.getRole());

    String facetName = "testName";
    SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
            .withFacet(new TermFacetRequestBuilder(facetName).fields("role").descCount().build()).build();

    // when
    FacetedPage<User> result = elasticsearchTemplate.queryForPage(searchQuery, User.class);
    assertEquals(3, result.getNumberOfElements());
    TermResult facet = (TermResult) result.getFacet(facetName);
    assertEquals(3, facet.getTerms().size());
    for (Term term : facet.getTerms()) {
        assertTrue("1".equals(term.getTerm()) || "2".equals(term.getTerm()) || "3".equals(term.getTerm()));
        System.out.println("Facet term : " + term.getTerm());
        //System.out.println("Facet count : " + term.getCount());
        //result
        //Facet term : 3
        //Facet term : 2
        //Facet term : 1
    }

    // query list all
    searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
            //.withFacet(new TermFacetRequestBuilder(facetName).fields("role").descCount().build())
            .build();
    List<User> userList = elasticsearchTemplate.queryForList(searchQuery, User.class);
    assertEquals(3, userList.size());
    for (User u : userList) {
        System.out.println("User ID: " + u.getId());
        System.out.println("User Name: " + u.getName());
    }

    // query list all with pagination
    searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withPageable(new PageRequest(0, 10))
            //.withIndices("xuseridx")
            //.withTypes("xusertype")
            //.withFacet(new TermFacetRequestBuilder(facetName).fields("role").descCount().build())
            .build();
    Page<User> pagedUsers = elasticsearchTemplate.queryForPage(searchQuery, User.class);
    assertEquals(3, pagedUsers.getTotalElements());
    assertEquals(1, pagedUsers.getTotalPages());
    for (User u : pagedUsers.getContent()) {
        System.out.println("User ID: " + u.getId());
        System.out.println("User Name: " + u.getName());
    }

    // query filter with key "1" contains value "filter3" and key "2" contains value "filter13"
    QueryBuilder builder = nestedQuery("filter",
            boolQuery().must(termQuery("1", "filter3")).must(termQuery("2", "filter13")));
    searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();
    userList = elasticsearchTemplate.queryForList(searchQuery, User.class);
    assertEquals(1, userList.size());
    for (User u : userList) {
        System.out.println("User ID: " + u.getId());
        System.out.println("User Name: " + u.getName());
    }

    // query all with filter path prefix "1.1"
    builder = boolQuery().must(prefixQuery("path", "1.1"));
    searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();
    userList = elasticsearchTemplate.queryForList(searchQuery, User.class);
    assertEquals(2, userList.size());
    for (User u : userList) {
        System.out.println("User ID: " + u.getId());
        System.out.println("User Name: " + u.getName());
    }

    builder = QueryBuilders.multiMatchQuery("user", // term to search
            "path", "name" // field to search
    );
    searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();
    userList = elasticsearchTemplate.queryForList(searchQuery, User.class);
    assertEquals(3, userList.size());
    for (User u : userList) {
        System.out.println("User ID: " + u.getId());
        System.out.println("User Name: " + u.getName());
    }

    // ref: https://github.com/elasticsearch/elasticsearch/blob/master/docs/java-api/query-dsl-queries.asciidoc#boolean-query
    // http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/query-dsl-queries.html
    // Boolean Query
    builder = boolQuery().must(termQuery("content", "test1")) // field name, keyword
            .must(termQuery("content", "test4")) // field name, keyword
            .mustNot(termQuery("content", "test2")) // field name, keyword
            .should(termQuery("content", "test3")); // field name, keyword
    // Boosting Query
    builder = QueryBuilders.boostingQuery().positive(termQuery("name", "kimchy")) // query that will promote documents
            .negative(termQuery("name", "dadoonet")) // query that will demote documents
            .negativeBoost(0.2f); // negative boost
    //IDs Query
    builder = QueryBuilders.idsQuery().ids("1", "2");
    // Constant Score Query
    builder = QueryBuilders.constantScoreQuery(termFilter("name", "kimchy") // you can use a filter
    ).boost(2.0f); // filter score
    builder = QueryBuilders.constantScoreQuery(termQuery("name", "kimchy") // you can use a query
    ).boost(2.0f);
    // Prefix Query
    builder = QueryBuilders.prefixQuery("brand", // field
            "heine" // term
    );
    // QueryString Query
    builder = QueryBuilders.queryString("+kimchy -elasticsearch");
    // Range Query
    builder = QueryBuilders.rangeQuery("price") // field
            .from(5) // from
            .to(10) // to
            .includeLower(true) // include lower value means that from is gt when false or gte when true
            .includeUpper(false); // include upper value means that to is lt when false or lte when true

    builder = QueryBuilders.disMaxQuery() // add your queries
            .add(termQuery("name", "kimchy")) // add your queries
            .add(termQuery("name", "elasticsearch")) // 
            .boost(1.2f) // boost factor
            .tieBreaker(0.7f); // tie breaker
    // Fuzzy Like This (Field) Query (flt and flt_field)
    builder = QueryBuilders.fuzzyLikeThisQuery("name.first", "name.last") // fields
            .likeText("text like this one") // text
            .maxQueryTerms(12); // max num of Terms in generated queries
    //FuzzyQuery
    builder = QueryBuilders.fuzzyQuery("name", // field
            "kimzhy" // term
    );
}

From source file:org.terasoluna.gfw.web.pagination.PaginationTagTest.java

/**
 * customized case 2.// w w w  .  ja v a 2s.c  o  m
 * 
 * <pre>
 * -pathTmpl
 * </pre>
 */
@Test
public void testDoStartTagInternal11() throws Exception {

    Page<String> page = mock(Page.class);
    // set mock behavior
    when(page.getNumber()).thenReturn(20);
    when(page.getSize()).thenReturn(10);
    when(page.getTotalPages()).thenReturn(100);
    when(page.getTotalElements()).thenReturn(1000L);

    tag.setPage(page);

    // customize
    tag.setPathTmpl("p/{page}/{size}/");
    tag.setQueryTmpl("");

    int ret = tag.doStartTagInternal();

    assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE));
    String expected = "<ul><li><a href=\"p/0/10/\">&lt;&lt;</a></li><li><a href=\"p/19/10/\">&lt;</a></li><li><a href=\"p/15/10/\">16</a></li><li><a href=\"p/16/10/\">17</a></li><li><a href=\"p/17/10/\">18</a></li><li><a href=\"p/18/10/\">19</a></li><li><a href=\"p/19/10/\">20</a></li><li class=\"active\"><a href=\"javascript:void(0)\">21</a></li><li><a href=\"p/21/10/\">22</a></li><li><a href=\"p/22/10/\">23</a></li><li><a href=\"p/23/10/\">24</a></li><li><a href=\"p/24/10/\">25</a></li><li><a href=\"p/21/10/\">&gt;</a></li><li><a href=\"p/99/10/\">&gt;&gt;</a></li></ul>";
    assertThat(getOutput(), is(expected));
}

From source file:org.terasoluna.gfw.web.pagination.PaginationTagTest.java

/**
 * customized case 2./*from   w  w  w .  ja  v a 2  s .  c  o  m*/
 * 
 * <pre>
 * -use sort order
 * </pre>
 */
@Test
public void testDoStartTagInternal12() throws Exception {

    Page<String> page = mock(Page.class);
    // set mock behavior
    when(page.getNumber()).thenReturn(20);
    when(page.getSize()).thenReturn(10);
    when(page.getTotalPages()).thenReturn(100);
    when(page.getTotalElements()).thenReturn(1000L);
    when(page.getSort()).thenReturn(new Sort(new Sort.Order(Direction.DESC, "id")));

    tag.setPage(page);

    // customize
    tag.setQueryTmpl("page={page}&size={size}&sort={sortOrderProperty}&desc={sortOrderDirection}");

    int ret = tag.doStartTagInternal();

    assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE));
    String expected = "<ul><li><a href=\"?page=0&size=10&sort=id&desc=DESC\">&lt;&lt;</a></li><li><a href=\"?page=19&size=10&sort=id&desc=DESC\">&lt;</a></li><li><a href=\"?page=15&size=10&sort=id&desc=DESC\">16</a></li><li><a href=\"?page=16&size=10&sort=id&desc=DESC\">17</a></li><li><a href=\"?page=17&size=10&sort=id&desc=DESC\">18</a></li><li><a href=\"?page=18&size=10&sort=id&desc=DESC\">19</a></li><li><a href=\"?page=19&size=10&sort=id&desc=DESC\">20</a></li><li class=\"active\"><a href=\"javascript:void(0)\">21</a></li><li><a href=\"?page=21&size=10&sort=id&desc=DESC\">22</a></li><li><a href=\"?page=22&size=10&sort=id&desc=DESC\">23</a></li><li><a href=\"?page=23&size=10&sort=id&desc=DESC\">24</a></li><li><a href=\"?page=24&size=10&sort=id&desc=DESC\">25</a></li><li><a href=\"?page=21&size=10&sort=id&desc=DESC\">&gt;</a></li><li><a href=\"?page=99&size=10&sort=id&desc=DESC\">&gt;&gt;</a></li></ul>";
    assertThat(getOutput(), is(expected));
}

From source file:org.terasoluna.gfw.web.pagination.PaginationTagTest.java

/**
 * customized case 4./*  w  w w .j  ava  2  s.  c  om*/
 * 
 * <pre>
 * -outerElement is empty
 * -innerElement
 * </pre>
 */
@Test
public void testDoStartTagInternal14() throws Exception {

    Page<String> page = mock(Page.class);
    // set mock behavior
    when(page.getNumber()).thenReturn(20);
    when(page.getSize()).thenReturn(10);
    when(page.getTotalPages()).thenReturn(100);
    when(page.getTotalElements()).thenReturn(1000L);

    tag.setPage(page);

    // customize
    tag.setOuterElement("");
    tag.setInnerElement("span");

    int ret = tag.doStartTagInternal();

    assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE));
    String expected = "<span><a href=\"?page=0&size=10\">&lt;&lt;</a></span><span><a href=\"?page=19&size=10\">&lt;</a></span><span><a href=\"?page=15&size=10\">16</a></span><span><a href=\"?page=16&size=10\">17</a></span><span><a href=\"?page=17&size=10\">18</a></span><span><a href=\"?page=18&size=10\">19</a></span><span><a href=\"?page=19&size=10\">20</a></span><span class=\"active\"><a href=\"javascript:void(0)\">21</a></span><span><a href=\"?page=21&size=10\">22</a></span><span><a href=\"?page=22&size=10\">23</a></span><span><a href=\"?page=23&size=10\">24</a></span><span><a href=\"?page=24&size=10\">25</a></span><span><a href=\"?page=21&size=10\">&gt;</a></span><span><a href=\"?page=99&size=10\">&gt;&gt;</a></span>";
    assertThat(getOutput(), is(expected));
}

From source file:org.terasoluna.gfw.web.pagination.PaginationTagTest.java

/**
 * customized case 6./* w ww  .  j a va2s .c  om*/
 * 
 * <pre>
 * -no display
 * </pre>
 */
@Test
public void testDoStartTagInternal16() throws Exception {

    Page<String> page = mock(Page.class);
    // set mock behavior
    when(page.getNumber()).thenReturn(20);
    when(page.getSize()).thenReturn(10);
    when(page.getTotalPages()).thenReturn(100);
    when(page.getTotalElements()).thenReturn(1000L);

    tag.setPage(page);

    // customize
    tag.setMaxDisplayCount(0);
    tag.setFirstLinkText("");
    tag.setLastLinkText("");

    int ret = tag.doStartTagInternal();

    assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE));
    String expected = "<ul><li><a href=\"?page=19&size=10\">&lt;</a></li><li><a href=\"?page=21&size=10\">&gt;</a></li></ul>";
    assertThat(getOutput(), is(expected));
}

From source file:org.terasoluna.gfw.web.pagination.PaginationTagTest.java

/**
 * customized case 5.//w  w  w .  j  a  v a2 s  .  c  o  m
 * 
 * <pre>
 * -innerElement is span
 * </pre>
 */
@Test
public void testDoStartTagInternal15() throws Exception {

    Page<String> page = mock(Page.class);
    // set mock behavior
    when(page.getNumber()).thenReturn(20);
    when(page.getSize()).thenReturn(10);
    when(page.getTotalPages()).thenReturn(100);
    when(page.getTotalElements()).thenReturn(1000L);

    tag.setPage(page);

    // customize
    tag.setOuterElement("p");
    tag.setInnerElement("span");

    int ret = tag.doStartTagInternal();

    System.out.println(getOutput().replaceAll(Pattern.quote("\""), "\\\\\""));

    assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE));
    String expected = "<p><span><a href=\"?page=0&size=10\">&lt;&lt;</a></span><span><a href=\"?page=19&size=10\">&lt;</a></span><span><a href=\"?page=15&size=10\">16</a></span><span><a href=\"?page=16&size=10\">17</a></span><span><a href=\"?page=17&size=10\">18</a></span><span><a href=\"?page=18&size=10\">19</a></span><span><a href=\"?page=19&size=10\">20</a></span><span class=\"active\"><a href=\"javascript:void(0)\">21</a></span><span><a href=\"?page=21&size=10\">22</a></span><span><a href=\"?page=22&size=10\">23</a></span><span><a href=\"?page=23&size=10\">24</a></span><span><a href=\"?page=24&size=10\">25</a></span><span><a href=\"?page=21&size=10\">&gt;</a></span><span><a href=\"?page=99&size=10\">&gt;&gt;</a></span></p>";
    assertThat(getOutput(), is(expected));
}

From source file:org.terasoluna.gfw.web.pagination.PaginationTagTest.java

@Test
public void issue12_testDoStartTagInternal_criteriaQuery_specified_startWith_andMark() throws Exception {
    Page<String> page = mock(Page.class);
    // set mock behavior
    when(page.getNumber()).thenReturn(0);
    when(page.getSize()).thenReturn(10);
    when(page.getTotalPages()).thenReturn(100);
    when(page.getTotalElements()).thenReturn(1000L);

    tag.setPage(page);/*from   w  w w. jav a  2s.co m*/
    tag.setMaxDisplayCount(3);
    tag.setCriteriaQuery("&a=%2B&b=+&c=%3D&d=%26");

    int ret = tag.doStartTagInternal();

    assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE));

    StringBuilder expected = new StringBuilder();
    String expectedCriteriaQuery = "&a=%2B&amp;b=+&amp;c=%3D&amp;d=%26";
    expected.append("<ul>");
    expected.append("<li class=\"disabled\"><a href=\"javascript:void(0)\">&lt;&lt;</a></li>");
    expected.append("<li class=\"disabled\"><a href=\"javascript:void(0)\">&lt;</a></li>");
    expected.append("<li class=\"active\"><a href=\"javascript:void(0)\">1</a></li>");
    expected.append("<li><a href=\"?page=1&size=10" + expectedCriteriaQuery + "\">2</a></li>");
    expected.append("<li><a href=\"?page=2&size=10" + expectedCriteriaQuery + "\">3</a></li>");
    expected.append("<li><a href=\"?page=1&size=10" + expectedCriteriaQuery + "\">&gt;</a></li>");
    expected.append("<li><a href=\"?page=99&size=10" + expectedCriteriaQuery + "\">&gt;&gt;</a></li>");
    expected.append("</ul>");

    // That the and-mark(&) is remove
    assertThat(getOutput(), is(expected.toString()));
}

From source file:org.terasoluna.gfw.web.pagination.PaginationTagTest.java

@Test
public void issue12_testDoStartTagInternal_criteriaQuery_specified_startWith_questionMark() throws Exception {
    Page<String> page = mock(Page.class);
    // set mock behavior
    when(page.getNumber()).thenReturn(0);
    when(page.getSize()).thenReturn(10);
    when(page.getTotalPages()).thenReturn(100);
    when(page.getTotalElements()).thenReturn(1000L);

    tag.setPage(page);/*from w  w w. j a va  2  s.c  o  m*/
    tag.setMaxDisplayCount(3);
    tag.setCriteriaQuery("?a=%2B&b=+&c=%3D&d=%26");
    tag.setDisableHtmlEscapeOfCriteriaQuery(null);

    int ret = tag.doStartTagInternal();

    assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE));

    StringBuilder expected = new StringBuilder();
    String expectedCriteriaQuery = "&a=%2B&amp;b=+&amp;c=%3D&amp;d=%26";
    expected.append("<ul>");
    expected.append("<li class=\"disabled\"><a href=\"javascript:void(0)\">&lt;&lt;</a></li>");
    expected.append("<li class=\"disabled\"><a href=\"javascript:void(0)\">&lt;</a></li>");
    expected.append("<li class=\"active\"><a href=\"javascript:void(0)\">1</a></li>");
    expected.append("<li><a href=\"?page=1&size=10" + expectedCriteriaQuery + "\">2</a></li>");
    expected.append("<li><a href=\"?page=2&size=10" + expectedCriteriaQuery + "\">3</a></li>");
    expected.append("<li><a href=\"?page=1&size=10" + expectedCriteriaQuery + "\">&gt;</a></li>");
    expected.append("<li><a href=\"?page=99&size=10" + expectedCriteriaQuery + "\">&gt;&gt;</a></li>");
    expected.append("</ul>");

    // That the question-mark(?) is remove
    assertThat(getOutput(), is(expected.toString()));
}

From source file:org.terasoluna.gfw.web.pagination.PaginationTagTest.java

@Test
public void issue12_testDoStartTagInternal_disableHtmlEscapeOfCriteriaQuery_specified_true() throws Exception {
    Page<String> page = mock(Page.class);
    // set mock behavior
    when(page.getNumber()).thenReturn(0);
    when(page.getSize()).thenReturn(10);
    when(page.getTotalPages()).thenReturn(100);
    when(page.getTotalElements()).thenReturn(1000L);

    tag.setPage(page);/*from w  ww . java  2s .c  o  m*/
    tag.setMaxDisplayCount(3);
    tag.setCriteriaQuery("&a=%2B&b=+&c=%3D&d=%26&e=<>\"'");
    tag.setDisableHtmlEscapeOfCriteriaQuery("true");

    int ret = tag.doStartTagInternal();

    assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE));

    StringBuilder expected = new StringBuilder();
    String expectedCriteriaQuery = "&a=%2B&b=+&c=%3D&d=%26&e=<>\"'";
    expected.append("<ul>");
    expected.append("<li class=\"disabled\"><a href=\"javascript:void(0)\">&lt;&lt;</a></li>");
    expected.append("<li class=\"disabled\"><a href=\"javascript:void(0)\">&lt;</a></li>");
    expected.append("<li class=\"active\"><a href=\"javascript:void(0)\">1</a></li>");
    expected.append("<li><a href=\"?page=1&size=10" + expectedCriteriaQuery + "\">2</a></li>");
    expected.append("<li><a href=\"?page=2&size=10" + expectedCriteriaQuery + "\">3</a></li>");
    expected.append("<li><a href=\"?page=1&size=10" + expectedCriteriaQuery + "\">&gt;</a></li>");
    expected.append("<li><a href=\"?page=99&size=10" + expectedCriteriaQuery + "\">&gt;&gt;</a></li>");
    expected.append("</ul>");

    // That the and-mark(&) is remove
    assertThat(getOutput(), is(expected.toString()));
}