java - 使用spring data JPA时添加PARTITION语句进行查询

标签 java hibernate spring-data-jpa partition

以下面的 SQL 查询为例

从员工PARTITION (p0)中选择* WHERE name ='John';

在 Spring data JPA 中,无需“PARTITION (p0)”即可轻松编写上述示例。 当我需要添加分区时,这会变得很困难。

一种可能的解决方案是使用 native SQL。但是,这对我来说不是一个选择,因为我必须使用 PaginationAndSorting 和 Criteriabuilder。 任何建议都会很棒。谢谢。

最佳答案

您无法使用 Criteria API 执行此操作,因为它基本上会创建 JPQL,并将分区子句作为 SQL 的一部分,而 JPQL 中没有等效项。

由于您似乎需要动态创建查询,因此我建议您查看 Querydsl 和 jOOQ,看看它们是否支持分区子句,或者使用字符串连接自己构建 SQL。 在这种情况下,您必须注意不要创建 SQL 注入(inject)漏洞。

如果您实际上需要的是分页,则可以与 native @Query 注释结合使用。

关于java - 使用spring data JPA时添加PARTITION语句进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62421593/

相关文章:

Spring 数据 CrudRepository 存在

java - 如何通过使用 auto-ddl=update 更改 JPA 中的实体来更改表

java - 为什么将 @Repository 放在 Spring Data JPA 接口(interface)之上?

java - @InjectMocks,构造函数或初始化 block 抛出异常

java - 我如何在这里使用 "do while"命令?

java - (true != false != true) 与 (false != true != false) 有何不同?

java - 使用 JPQL 查询在 JPA 中进行查询组合、一对多关系

java - 如何编写 HQL 查询来处理可选输入参数

java - 实例化和初始化对象时出现问题

java - Hibernate 左外连接