以下面的 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/