我正在尝试使用jOOQ生成以下SQL语句:
SELECT id, name
FROM students
ORDER BY id DESC
LIMIT 50;
使用jOOQ生成上述语句:
String sql = DSL.using(SQLDialect.POSTGRES).select(
field("id"),
field("name"))
.from("students")
.orderBy(field("id").desc())
.limit(inline(50))
.getSQL();
但我得到以下内容:
select id, name from students order by id desc limit 50 offset ?
如何删除OFFSET
子句?我知道我可以将偏移值指定为0,这与省略OFFSET
子句相同,但我想知道是否可以从生成的SQL语句中完全删除它。
谢谢。
答案 0 :(得分:2)
你是对的,jOOQ 3.4.2当前为PostgreSQL呈现OFFSET
子句,无论用户是否通过API指定它。这可能会有所改善。我为此创建了问题#3577。
目前,还没有真正容易的"在这种情况下更改生成的SQL的方法。您可以实现ExecuteListener
,并修补生成的SQL - 但您还必须摆脱绑定值。