我正在尝试编写一个使用schema_id
方法的动态查询。我使用seek
代替addSeekAfter
是有缺陷的。我如何解决它?
seek
答案 0 :(得分:1)
DSL API提供了一种便捷方法seek(T1, T2)
,其中包含:
.seek(value1, value2)
这是短暂的:
.seek(DSL.val(value1), DSL.val(value2))
事实上,为方便起见,大多数jOOQ的API都被重载,因此您不必一直使用DSL.val()
显式创建绑定值。
但是,“模型API”(see the manual's section about DSL vs model API for details)不包含任何便利方法。这意味着您必须显式创建绑定值。写下这个:
query.addSeekAfter(
DSL.val(recentModifiedOn),
DSL.val(ULong.valueOf(recentTopicId)));
For more information, please consider also looking into the manual's section about bind variables
答案 1 :(得分:0)
这似乎解决了它。这是正确的方式吗?
Field[] topicIdArgs = new Field[]{DSL.val(ULong.valueOf(recentTopicId), ULong.class)};
Field[] args = new Field[]{DSL.val(TimeUtils.getTime(recentModifiedOn), Timestamp.class)};
query.addSeekAfter(DSL.function("", Timestamp.class, args), DSL.function("", ULong.class, topicIdArgs));
[编辑。看看Lukas'回答如下]