spring data jpa 使用 native query 在动态查询参数加持下进行分页查询返回自定义对象?

2019-08-22 23:46:25 +08:00
 haochih

使用 spring data jpa 进行一个复杂 sql 的分页查询,根据实际代码,有几点硬性要求:

请教下满足上述条件的分页查询使用 spring data jpa 怎么写,谢谢大家。

6270 次点击
所在节点    问与答
4 条回复
caotian
2019-08-23 09:20:54 +08:00
@Query 应该不好实现这个, 要么试试 entityManager.createNativeQuery 这种原生 sql 查询, 要么根据参数动态生成 specification 查询
HuasLeung
2019-08-23 09:59:11 +08:00
spring data jpa 可以传入一个 Pageable 做分页,但只有几个简单的属性设置,不适合做复杂的分页查询
nnnToTnnn
2019-08-23 14:10:33 +08:00
```java
public interface UserRepository extends JpaRepository<User, Long> {

@Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1",
countQuery = "SELECT count(*) FROM USERS WHERE LASTNAME = ?1",
nativeQuery = true)
Page<User> findByLastname(String lastname, Pageable pageable);
}
```

例子如下,话说为啥要使用 nativeQuery ? 其实用 hql 可以完全替代 sql
nnnToTnnn
2019-08-23 14:15:37 +08:00
动态参数 =。= 好吧这个没注意,如果是动态参数的话,可以使用 SpEL 表达式来动态修改注解的值

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594361

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX