Users / Add pagination
This commit is contained in:
parent
745795e7b7
commit
5fbd7c5510
@ -10,8 +10,11 @@ import org.springframework.web.bind.annotation.PostMapping;
|
|||||||
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import com.example.demo.core.api.PageDto;
|
||||||
|
import com.example.demo.core.api.PageDtoMapper;
|
||||||
import com.example.demo.core.configuration.Constants;
|
import com.example.demo.core.configuration.Constants;
|
||||||
import com.example.demo.users.model.UserEntity;
|
import com.example.demo.users.model.UserEntity;
|
||||||
import com.example.demo.users.service.UserService;
|
import com.example.demo.users.service.UserService;
|
||||||
@ -46,10 +49,10 @@ public class UserController {
|
|||||||
|
|
||||||
// Получить все элементы
|
// Получить все элементы
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public List<UserDto> getAll() {
|
public PageDto<UserDto> getAll(
|
||||||
return userService.getAll().stream()
|
@RequestParam(name = "page", defaultValue = "0") int page,
|
||||||
.map(this::toDto)
|
@RequestParam(name = "size", defaultValue = Constants.DEFAULT_PAGE_SIZE) int size) {
|
||||||
.toList();
|
return PageDtoMapper.toDto(userService.getAll(page, size), this::toDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Получить элемент по идентификатору
|
// Получить элемент по идентификатору
|
||||||
|
@ -2,12 +2,17 @@ package com.example.demo.users.repository;
|
|||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.repository.CrudRepository;
|
import org.springframework.data.repository.CrudRepository;
|
||||||
|
|
||||||
import com.example.demo.users.model.UserEntity;
|
import com.example.demo.users.model.UserEntity;
|
||||||
|
|
||||||
// Хранилище для сущности "Пользователь"
|
// Хранилище для сущности "Пользователь"
|
||||||
public interface UserRepository extends CrudRepository<UserEntity, Long> {
|
public interface UserRepository extends CrudRepository<UserEntity, Long> {
|
||||||
|
// Получить список всех пользовалей (с пагинацией)
|
||||||
|
Page<UserEntity> findAll(Pageable pageable);
|
||||||
|
|
||||||
// Получить пользователя по имени/логину
|
// Получить пользователя по имени/логину
|
||||||
Optional<UserEntity> findByUsername(String username);
|
Optional<UserEntity> findByUsername(String username);
|
||||||
|
|
||||||
|
@ -3,6 +3,8 @@ package com.example.demo.users.service;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.StreamSupport;
|
import java.util.stream.StreamSupport;
|
||||||
|
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.PageRequest;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@ -43,6 +45,13 @@ public class UserService {
|
|||||||
return StreamSupport.stream(repository.findAll().spliterator(), false).toList();
|
return StreamSupport.stream(repository.findAll().spliterator(), false).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Получить все элементы (с пагинацией)
|
||||||
|
@Transactional(readOnly = true)
|
||||||
|
public Page<UserEntity> getAll(int page, int size) {
|
||||||
|
final PageRequest pageRequest = PageRequest.of(page, size);
|
||||||
|
return repository.findAll(pageRequest);
|
||||||
|
}
|
||||||
|
|
||||||
// Получить элемент по идентификатору
|
// Получить элемент по идентификатору
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
public UserEntity get(Long id) {
|
public UserEntity get(Long id) {
|
||||||
|
Loading…
Reference in New Issue
Block a user