Hello Andreas, Yes, you've found an API bug. It is tracked as https://sourceforge.net/apps/trac/jooq/ticket/1219
This will be fixed in the next release. In the mean time, a possible workaround is to cast the result of limit() / offset() explicitly to SelectForUpdateStep Cheers Lukas 2012/3/6 Andreas <[email protected]>: > Hi, > > I tried to do a "select * from table where x = '1' limit 1 offset 0 for > update;" with jOOQ. Now the javadoc (and the first page of the jOOQ > homepage) clearly states that this is possible: > > create.select(TAuthor.FIRST_NAME, TAuthor.LAST_NAME, create.count()) > .from(T_AUTHOR) > .join(T_BOOK).on(TBook.AUTHOR_ID.equal(TAuthor.ID)) > .where(TBook.LANGUAGE.equal("DE")) > .and(TBook.PUBLISHED.greaterThan(parseDate('2008-01-01'))) > .groupBy(TAuthor.FIRST_NAME, TAuthor.LAST_NAME) > .having(create.count().greaterThan(5)) > .orderBy(TAuthor.LAST_NAME.asc().nullsFirst()) > .limit(2) > .offset(1) > .forUpdate() > .of(TAuthor.FIRST_NAME, TAuthor.LAST_NAME) > .noWait(); > > But I couldn't get it to work. A look at the interfaces reveals that the > call to "offset(1)" from "SelectOffsetStep" returns a "SelectFinalStep" > interface and not a "SelectForUpdateStep" interface. > Has this just been forgotten to reflect in the documentation or is this a > bug in the implementation? > > Thanks, > Andreas
