3 回答

TA贡献1780条经验 获得超5个赞
可能,它现在不支持。PreparedStatement
通常参数通过ValueBinder
接口(实际上是扩展类BasicBinder
)绑定到一个,BasicBinder
具有将绑定参数打印到日志的功能。但是 limit/offset 参数绑定到一个PreparedStatement
没有ValueBinder
接口的,因此 limit/offset 参数不会打印到日志中。我建议创建一个支持打印限制/偏移参数到日志的新问题!!

TA贡献1890条经验 获得超9个赞
您可以使用:setFirstResult(0).setMaxResults(5);
如果你使用 entityManager,它可以是这样的:
entityManager.createQuery("yourQuery").setFirstResult(0).setMaxResults(5);

TA贡献1836条经验 获得超3个赞
您正在撰写 JPQL 请求,JPA 不允许在其中使用关键字 LIMIT/OFFSET。调用 setFirstResult(1) 和 setMaxResults(3) 不会将 OFFSET 和 LIMIT 子句附加到查询。第一个选项是对您的数据库使用本机 SQL 查询,但这会使代码不可移植。另一种选择是使用 Pageable 来检索结果(不确定它是否会为您生成预期的日志行,但您需要检查):
@Query("SELECT f FROM Foo f ORDER BY f.id DESC") // or ASC
List<Foo> getLastDetails(Pageable pageable);
List<Foo> fooList = getLastDetails(new PageRequest(0,1)); // (int page, int size)
添加回答
举报