在 Spring Boot 应用程序中使用什么对 Mysql 进行动态搜索?

问题描述 投票:0回答:1

我将使用 Spring Boot 3.2.2 + Java 21 作为给定。

我有一个包含重要对象的 Mysql 数据库。例如,一个简化的例子:

Film
  Actor[]

我知道我可以使用 findAll() 使用 JpaRepository 来完成此操作,并使用 Hibernate 进行完整的 Pojo 映射,但是......

  • 名称派生查询将不起作用,因为搜索条件将根据 REST 请求动态变化
  • 我原本计划使用 Webflux 和 r2dbc,但看起来你不能将 Hibernate 与 r2dbc 一起使用,然后你必须手动完成所有到 POJO 的映射?
  • 我遇到过 QueryDSL 并且之前在 Mongo 上使用过它,看起来你也不能在 Webflux 中使用它?这可以为您完成所有嵌套映射吗?

基本上,我想看看是否有任何东西可以开箱即用地进行动态查询和嵌套映射? :)

java spring-boot spring-data
1个回答
0
投票

我建议您使用具有规范和可分页的 findAll() 。 在规范类中,您可以使用 CriteriaBuilder 创建动态查询。并让 pageable 处理页码、页面大小和排序。这种方法几乎可以处理任何场景。

如果您要过滤和排序的数据库表只是一组表,那么您可以跳过使用 findAll() 方法,而直接使用标准生成器解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.