【发布时间】:2017-05-04 14:51:30
【问题描述】:
我想获取整个 WHEREclause 作为 REST 参数并将其提供给 PagingAndSortingRepository。春天可以吗?我知道我可以使用本机 sql 来做到这一点,但我也想使用 spring 的分页功能。我认为 QueryDsl 对我不起作用,因为 where 子句简直是无限的,在这种情况下我必须解析所有参数。
Ex 请求:
localhost:8080/users?page=0&size=5&where=(firstname+eq+john+and+lastname+neq+terry)or(email+eq+john@gmail.com)
我希望它是这样的:
interface UserDAO extends PagingAndSortingRepository<User, Integer> {
@Query(value = "SELECT * FROM User ?2",
countQuery = "SELECT count(*) FROM User ?2",
nativeQuery = true)
List<User> getUserList(Pageable pageable, String filter);
}
简而言之,我需要用请求的WHERE 子句更改上述代码中的filter 参数。任何想法都将不胜感激。
谢谢..
【问题讨论】:
-
我应该可以通过查看此参考来做到这一点:docs.spring.io/spring-data/jpa/docs/current/reference/html/… 但我仍然收到“InvalidJpaQueryMethodException:无法使用具有动态排序和/或分页的本机查询”
标签: java sql spring spring-mvc spring-data