使用 spring data jpa 进行一个复杂 sql 的分页查询,根据实际代码,有几点硬性要求:
请教下满足上述条件的分页查询使用 spring data jpa 怎么写,谢谢大家。
1
caotian 2019-08-23 09:20:54 +08:00
@Query 应该不好实现这个, 要么试试 entityManager.createNativeQuery 这种原生 sql 查询, 要么根据参数动态生成 specification 查询
|
2
BCy66drFCvk1Ou87 2019-08-23 09:59:11 +08:00
spring data jpa 可以传入一个 Pageable 做分页,但只有几个简单的属性设置,不适合做复杂的分页查询
|
3
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 |
4
nnnToTnnn 2019-08-23 14:15:37 +08:00
动态参数 =。= 好吧这个没注意,如果是动态参数的话,可以使用 SpEL 表达式来动态修改注解的值
|