Paw*_*ł S 10 java spring hibernate spring-data-jpa spring-boot
我需要一些关于实现 spring JPA 查询的建议。由于输入长度,我的查询很复杂。
作为输入,我有:
我知道这可以通过使用标准 PagingAndSortingRepository 来解决,例如:
Page<A> findAllByParam1AndParam2AndParam3Between...(@Nullable String param1, @Nullable String param2, @Nullable Integer param3,...)
Run Code Online (Sandbox Code Playgroud)
但看看我的输入是多长时间,这个解决方案看起来不清楚,我认为具有这么多参数的方法不是一个好的解决方案。我也在考虑findAllExample ,但这是支持平等,而不是条件之间。
还有其他选择吗?
唯一的方法是使用CriteriaBuilder构建自定义查询?
派生查询,即那些从方法名称派生实际查询的查询,对于这种长或复杂的查询来说是错误的工具,因为结果名称变得不可用。
您应该考虑的替代方案是
使用@Query注释中提供的固定查询:https : //docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.at-query
使用命名查询,您可以在其中提供对实体的查询:https : //docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.named-queries
使用动态组装 where 子句的规范:https : //spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/
| 归档时间: |
|
| 查看次数: |
19339 次 |
| 最近记录: |