提问者:小点点

@查询标注对数据进行筛选


我在下面的声明中面临问题

`SELECT b
FROM com.development.searchbooks.dto.BooksEntity b
WHERE lower(b.title) LIKE ?1
    OR lower(b.author_name) LIKE ?1
    OR lower(b.publication) LIKE ?1
ORDER BY title ASC LIMIT 10 OFFSET ?2`

意外令牌:第1行173列附近的LIMIT

这是查询我使用过滤基于关键字和顺序通过升序和做分页.我得到错误的权利后添加"LIMIT 10 OFFSET?2"这POC。

请帮忙。


共2个答案

匿名用户

jpa/jpql不考虑LIMIT关键字。因此,对于将LIMIT与@Query一起使用,我们可以使本机查询标志为真。

( using - nativeQuery=true )

下面是示例

@Query("SELECT s FROM Table s ORDER BY s.id DESC LIMIT 1", nativeQuery=true)

匿名用户

我的问题的最终答案,

@Query(value = "SELECT * FROM books WHERE lower(title) LIKE %?1% OR lower(author_name) LIKE %?1% OR lower(publication) LIKE %?1% ORDER BY title ASC LIMIT 10 OFFSET ?2", nativeQuery = true)