List of usage examples for org.springframework.data.domain Page getTotalPages
int getTotalPages();
From source file:com.company.project.data.elasticsearch.service.UserESServiceTest.java
/** * Test of crud method, of class UserESService. *//*from w w w.ja va 2 s . c o m*/ //@Test public void testCrud() { System.out.println("crud"); //userESService.crud(); // TODO review the generated test code and remove the default call to fail. 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); boolean typeExists = elasticsearchTemplate.typeExists("xuseridx", "xusertype"); /** * Single index example */ String id = UUID.randomUUID().toString(); User user = new User(); user.setId(id); user.setName("user-" + id); IndexQuery userIndex = new IndexQuery(); userIndex.setId(id); userIndex.setObject(user); userIndex.setIndexName("xuseridx"); userIndex.setType("xusertype"); elasticsearchTemplate.index(userIndex); /** * Bulk index example */ id = UUID.randomUUID().toString(); user = new User(); user.setId(id); user.setName("user-" + id); IndexQuery indexQuery2 = new IndexQueryBuilder().withId(user.getId()).withIndexName("xuseridx") .withObject(user).build(); id = UUID.randomUUID().toString(); user = new User(); user.setId(id); user.setName("user-" + RandomStringUtils.random(5)); IndexQuery indexQuery3 = new IndexQueryBuilder().withId(user.getId()).withIndexName("xuseridx") .withObject(user).build(); elasticsearchTemplate.bulkIndex(Arrays.asList(indexQuery2, indexQuery3)); // alternative to index //userRepository.save(Arrays.asList(user)); elasticsearchTemplate.refresh(User.class, true); QueryBuilder builder = nestedQuery("xuseridx", boolQuery().must(termQuery("xusertype.name", "user2")).must(termQuery("xusertype.name", "user3"))); //https://github.com/BioMedCentralLtd/spring-data-elasticsearch-sample-application/blob/master/src/main/java/org/springframework/data/elasticsearch/entities/Article.java Page<User> pageUser = userRepository.findByName("user-" + id, new PageRequest(0, 10)); System.out.println("Page user total elements" + pageUser.getTotalElements()); System.out.println("Page user total elements" + pageUser.getTotalPages()); System.out.println("Page user first element" + pageUser.getContent().get(0).getName()); Iterable<User> pageUserSorted = userRepository .findAll(new Sort(new Sort.Order(Sort.Direction.ASC, "xusertype.name"))); System.out.println("Page user sorted total elements" + pageUserSorted.iterator().hasNext()); System.out.println("Page user sorted first element" + pageUserSorted.iterator().next().getName()); //SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build(); SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices("xuseridx") .build(); List persons = elasticsearchTemplate.queryForList(searchQuery, User.class); System.out.println("People size:" + (persons != null ? persons.size() : null)); searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) .withFilter(boolFilter().must(existsFilter("name"))).withPageable(new PageRequest(0, 2)).build(); Page<User> users = userRepository.search(searchQuery); System.out.println("Page user query total elements" + users.getTotalElements()); System.out.println("Page user query total pages" + users.getTotalPages()); System.out.println("Page user query first element" + users.getContent().get(0).getName()); }
From source file:es.fdi.reservas.reserva.web.GestorController.java
@RequestMapping(value = "/gestor/administrar/edificios/direccion/{direccion}/page/{pageNumber}", method = RequestMethod.GET) public String gestiona_edificio_direccion(@PathVariable String direccion, @PathVariable Integer pageNumber, Model model) {/*from www . jav a2 s .c om*/ User u = gestor_service.getUsuarioActual(); Pageable pageable = new PageRequest(pageNumber - 1, 5); Page<Edificio> currentResults = gestor_service.getEdificioByTagDireccionAndFacutadId(direccion, u.getFacultad().getId(), pageable); model.addAttribute("currentResults", currentResults); int current = currentResults.getNumber() + 1; int begin = Math.max(1, current - 5); int end = Math.min(begin + 10, currentResults.getTotalPages()); model.addAttribute("beginIndex", begin); model.addAttribute("endIndex", end); model.addAttribute("currentIndex", current); model.addAttribute("User", u); model.addAttribute("GruposReservas", gestor_service.getGrupoReservaByUserId(u.getId())); model.addAttribute("reservasPendientes", gestor_service.getReservasPendientes(u.getId(), EstadoReserva.PENDIENTE).size()); model.addAttribute("view", "gestor/administrar_edificios"); return "index"; }
From source file:es.fdi.reservas.reserva.web.GestorController.java
@RequestMapping(value = "/gestor/administrar/espacios/eliminados/edificio/{direccion}/page/{pageNumber}", method = RequestMethod.GET) public String gestiona_espacio_direccio2n(@PathVariable String direccion, @PathVariable Integer pageNumber, Model model) {/*from w w w . j a v a 2 s. c om*/ User u = gestor_service.getUsuarioActual(); Pageable pageable = new PageRequest(pageNumber - 1, 5); Page<Espacio> currentResults = gestor_service.getEspaciosDeletedByFacultadAndEdificio(direccion, u.getFacultad().getId(), pageable); model.addAttribute("currentResults", currentResults); int current = currentResults.getNumber() + 1; int begin = Math.max(1, current - 5); int end = Math.min(begin + 10, currentResults.getTotalPages()); model.addAttribute("beginIndex", begin); model.addAttribute("endIndex", end); model.addAttribute("currentIndex", current); model.addAttribute("User", u); model.addAttribute("GruposReservas", gestor_service.getGrupoReservaByUserId(u.getId())); model.addAttribute("reservasPendientes", gestor_service.getReservasPendientes(u.getId(), EstadoReserva.PENDIENTE).size()); model.addAttribute("view", "gestor/papelera_espacios"); return "index"; }
From source file:es.fdi.reservas.reserva.web.GestorController.java
@RequestMapping(value = "/gestor/administrar/reservas/estado/{estado}/page/{pageNumber}", method = RequestMethod.GET) public String gestiona_reservas_estado(@PathVariable String estado, @PathVariable Integer pageNumber, Model model) {/*from www . j a v a 2s.c o m*/ User u = gestor_service.getUsuarioActual(); PageRequest pageRequest = new PageRequest(pageNumber - 1, 5); String estadoAlt; char char0 = estado.charAt(0); if (char0 == 'c' || char0 == 'C') estadoAlt = "Confirmada"; else if (char0 == 'p' || char0 == 'P') estadoAlt = "Pendiente"; else if (char0 == 'd' || char0 == 'D') estadoAlt = "Denegada"; else estadoAlt = "Otro"; Page<Reserva> currentResults = gestor_service.getReservasByEstadoReserva( EstadoReserva.fromEstadoReserva(estadoAlt), u.getFacultad().getId(), pageRequest); model.addAttribute("currentResults", currentResults); int current = currentResults.getNumber() + 1; int begin = Math.max(1, current - 5); int end = Math.min(begin + 10, currentResults.getTotalPages()); model.addAttribute("beginIndex", begin); model.addAttribute("endIndex", end); model.addAttribute("currentIndex", current); model.addAttribute("User", u); model.addAttribute("GruposReservas", gestor_service.getGrupoReservaByUserId(u.getId())); model.addAttribute("reservasPendientes", gestor_service.getReservasPendientes(u.getId(), EstadoReserva.PENDIENTE).size()); model.addAttribute("view", "gestor/administrar-reservas"); return "index"; }
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 ww w .ja v a2 s . c o m*/ 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.yukung.daguerreo.domain.repository.BasicJooqRepositoryTest.java
@Test public void findAllByPageable() throws Exception { // given//from w w w. ja va 2 s . c om dbSetupTracker.skipNextLaunch(); // when PageRequest page1 = new PageRequest(0, 2); PageRequest page2 = new PageRequest(1, 2); Page<BookApi> bookApis1 = repository.findAll(page1); Page<BookApi> bookApis2 = repository.findAll(page2); // then assertThat(bookApis1).isNotNull().isNotEmpty().hasSize(2).extracting("id", "name", "url").containsExactly( tuple(1, "Amazon Product Advertising API", "https://ecs.amazonaws.jp/onca/xml"), tuple(2, "Google Books API", "https://www.googleapis.com/books/v1/volumes")); assertThat(bookApis1.getNumber()).isEqualTo(0); assertThat(bookApis1.getNumberOfElements()).isEqualTo(2); assertThat(bookApis1.getSize()).isEqualTo(2); assertThat(bookApis1.getTotalPages()).isEqualTo(2); assertThat(bookApis1.getTotalElements()).isEqualTo(3); assertThat(bookApis1.isFirst()).isTrue(); assertThat(bookApis1.isLast()).isFalse(); assertThat(bookApis1.hasNext()).isTrue(); assertThat(bookApis1.hasPrevious()).isFalse(); assertThat(bookApis2).isNotNull().isNotEmpty().hasSize(1).extracting("id", "name", "url") .containsExactly(tuple(3, "?API", "https://app.rakuten.co.jp/services/api/BooksBook/Search/20130522")); assertThat(bookApis2.getNumber()).isEqualTo(1); assertThat(bookApis2.getNumberOfElements()).isEqualTo(1); assertThat(bookApis2.getSize()).isEqualTo(2); assertThat(bookApis2.getTotalPages()).isEqualTo(2); assertThat(bookApis2.getTotalElements()).isEqualTo(3); assertThat(bookApis2.isFirst()).isFalse(); assertThat(bookApis2.isLast()).isTrue(); assertThat(bookApis2.hasNext()).isFalse(); assertThat(bookApis2.hasPrevious()).isTrue(); }
From source file:org.yukung.daguerreo.domain.repository.BasicJooqRepositoryTest.java
@Test public void findAllByPageableAndDescendingSort() throws Exception { // given/* w w w . j a v a 2s.com*/ dbSetupTracker.skipNextLaunch(); // when PageRequest page1 = new PageRequest(0, 2, Sort.Direction.DESC, "id"); PageRequest page2 = new PageRequest(1, 2, Sort.Direction.DESC, "id"); Page<BookApi> bookApis1 = repository.findAll(page1); Page<BookApi> bookApis2 = repository.findAll(page2); // then assertThat(bookApis1).isNotNull().isNotEmpty().hasSize(2).extracting("id", "name", "url").containsExactly( tuple(3, "?API", "https://app.rakuten.co.jp/services/api/BooksBook/Search/20130522"), tuple(2, "Google Books API", "https://www.googleapis.com/books/v1/volumes")); assertThat(bookApis1.getNumber()).isEqualTo(0); assertThat(bookApis1.getNumberOfElements()).isEqualTo(2); assertThat(bookApis1.getSize()).isEqualTo(2); assertThat(bookApis1.getTotalPages()).isEqualTo(2); assertThat(bookApis1.getTotalElements()).isEqualTo(3); assertThat(bookApis1.isFirst()).isTrue(); assertThat(bookApis1.isLast()).isFalse(); assertThat(bookApis1.hasNext()).isTrue(); assertThat(bookApis1.hasPrevious()).isFalse(); assertThat(bookApis2).isNotNull().isNotEmpty().hasSize(1).extracting("id", "name", "url") .containsExactly(tuple(1, "Amazon Product Advertising API", "https://ecs.amazonaws.jp/onca/xml")); assertThat(bookApis2.getNumber()).isEqualTo(1); assertThat(bookApis2.getNumberOfElements()).isEqualTo(1); assertThat(bookApis2.getSize()).isEqualTo(2); assertThat(bookApis2.getTotalPages()).isEqualTo(2); assertThat(bookApis2.getTotalElements()).isEqualTo(3); assertThat(bookApis2.isFirst()).isFalse(); assertThat(bookApis2.isLast()).isTrue(); assertThat(bookApis2.hasNext()).isFalse(); assertThat(bookApis2.hasPrevious()).isTrue(); }
From source file:org.yukung.daguerreo.domain.repository.BasicJooqRepositoryTest.java
@Test public void findAllByPageableNothing() throws Exception { // given/* ww w . ja v a2 s. c o m*/ dbSetupTracker.skipNextLaunch(); Pageable nothing = null; // when Page<BookApi> bookApis = repository.findAll(nothing); // then assertThat(bookApis).isNotNull().isNotEmpty().hasSize(3).extracting("id", "name", "url").containsExactly( tuple(1, "Amazon Product Advertising API", "https://ecs.amazonaws.jp/onca/xml"), tuple(2, "Google Books API", "https://www.googleapis.com/books/v1/volumes"), tuple(3, "?API", "https://app.rakuten.co.jp/services/api/BooksBook/Search/20130522")); assertThat(bookApis.getNumber()).isEqualTo(0); assertThat(bookApis.getNumberOfElements()).isEqualTo(3); assertThat(bookApis.getSize()).isEqualTo(0); assertThat(bookApis.getTotalPages()).isEqualTo(1); assertThat(bookApis.getTotalElements()).isEqualTo(3); assertThat(bookApis.isFirst()).isTrue(); assertThat(bookApis.isLast()).isTrue(); assertThat(bookApis.hasNext()).isFalse(); assertThat(bookApis.hasPrevious()).isFalse(); }
From source file:es.fdi.reservas.reserva.web.GestorController.java
@RequestMapping(value = "/gestor/administrar/edificios/eliminados/page/{pageNumber}", method = RequestMethod.GET) public String gestiona_edificio_eliminado(@PathVariable Integer pageNumber, Model model) { User u = gestor_service.getUsuarioActual(); Pageable pageable = new PageRequest(pageNumber - 1, 5); Page<Edificio> currentResults = gestor_service.getEdificioDeletedByFacultadId(u.getFacultad().getId(), pageable);//from w ww. j av a 2 s .c om System.out.println("current" + currentResults.getNumberOfElements()); System.out.println("current" + currentResults.getContent().get(0).getNombreEdificio()); model.addAttribute("currentResults", currentResults); int current = currentResults.getNumber() + 1; int begin = Math.max(1, current - 5); int end = Math.min(begin + 10, currentResults.getTotalPages()); model.addAttribute("beginIndex", begin); model.addAttribute("endIndex", end); model.addAttribute("currentIndex", current); model.addAttribute("User", u); model.addAttribute("GruposReservas", gestor_service.getGrupoReservaByUserId(u.getId())); model.addAttribute("reservasPendientes", gestor_service.getReservasPendientes(u.getId(), EstadoReserva.PENDIENTE).size()); model.addAttribute("view", "gestor/papelera_edificios"); return "index"; }
From source file:es.fdi.reservas.reserva.web.GestorController.java
@RequestMapping(value = "/gestor/administrar/edificios/eliminados/nombre/{nombre}/page/{pageNumber}", method = RequestMethod.GET) public String gestiona_edificio_eliminado_nombre(@PathVariable String nombre, @PathVariable Integer pageNumber, Model model) {// w ww . jav a 2 s . co m User u = gestor_service.getUsuarioActual(); Pageable pageable = new PageRequest(pageNumber - 1, 5); Page<Edificio> currentResults = gestor_service.getEdificioDeletedByTagNombreAndFacutadId(nombre, u.getFacultad().getId(), pageable); System.out.println("current" + currentResults.getNumberOfElements()); System.out.println("current" + currentResults.getContent().get(0).getNombreEdificio()); model.addAttribute("currentResults", currentResults); int current = currentResults.getNumber() + 1; int begin = Math.max(1, current - 5); int end = Math.min(begin + 10, currentResults.getTotalPages()); model.addAttribute("beginIndex", begin); model.addAttribute("endIndex", end); model.addAttribute("currentIndex", current); model.addAttribute("User", u); model.addAttribute("GruposReservas", gestor_service.getGrupoReservaByUserId(u.getId())); model.addAttribute("reservasPendientes", gestor_service.getReservasPendientes(u.getId(), EstadoReserva.PENDIENTE).size()); model.addAttribute("view", "gestor/papelera_edificios"); return "index"; }