Sql @查询注释以筛选数据

Sql @查询注释以筛选数据,sql,spring-boot,spring-data-jpa,Sql,Spring Boot,Spring Data Jpa,我在下面的声明中面临这个问题 `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` 意外标记:第173列第1行附近的限制 这是我用来根据关键字和顺序进

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

`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`
意外标记:第173列第1行附近的限制

这是我用来根据关键字和顺序进行升序和分页筛选的查询。在这个POC中添加“限制10偏移量?2”后,我立即得到错误


请对此给予帮助。

jpa/jpql不考虑限制关键字。 因此,对于@Query使用LIMIT,我们可以使本机查询标志为true

( 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)

是否将正确的值传递给
?2
?如何调用上面的SQL语句。您可以从日志中检查它在数据库中触发的SQL吗?检查这是否有助于“是”传递初始时间为10的偏移量值