我正在写Spring-MVC一个项目(在线商店)。在这个项目中,我使用Hibernate(Jpa)。决定添加Pagination。一切正常,产品数量根据我在代码中指示的减少,但我无法翻页。也就是说,在输入参数中,当我指定第 2 页而不是第 1 页时,我有相同数量的相同产品。可能是什么问题呢?
饮品类:
@Data
@Entity
@Table(name = "drink")
@Inheritance(strategy = InheritanceType.JOINED)
public class Drink {
// Fields
//
private @Id
@GeneratedValue
Long id;
/* Название напитка */
private String name;
/* Цена напитка */
private BigDecimal price;
/* Описание напитка */
private String about;
/* Флаг удаления */
@Column(name = "is_deleted")
private boolean isDeleted;
// Relationships
//
/* Упаковка напитка */
@ManyToOne
@JoinColumn(name = "packaging_id")
private Packaging packaging;
/* Производитель */
@ManyToOne
@JoinColumn(name = "manufacturer_id")
private Manufacturer manufacturer;
/* Страна производитель */
@ManyToOne
@JoinColumn(name = "country_id")
private Countries countries;
}
饮料库:
public interface DrinkRepository extends JpaRepository<Drink, Long> {
Page<Drink> findAll(Pageable pageable);
}
饮品服务:
// Methods
//
/* Получение списка товаров */
public List<DrinkDTO> getAllDrinks(int page, int pageSize) {
PageRequest pageRequest = PageRequest.of(page, pageSize);
final Page<Drink> drinks = drinkRepository.findAll(pageRequest);
return drinkMapper.drinksToDrinksDTO(drinks);
}
饮料控制器:
// Methods
//
// GET - methods
//
/* Получение списка товаров */
@GetMapping("/drinks")
List<DrinkDTO> getAllDrinks(@RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "page_size", defaultValue = "2") int pageSize) {
return drinkService.getAllDrinks(page, pageSize);
}

PageDto 将如下所示,例如在 swagger 中:
可分页:
种类:
结果,您将按名称排序分页。