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)
添加回答
舉報