gpt4 book ai didi

java - 乔克 : Unable to implement Seek in Dynamic Query

转载 作者:行者123 更新时间:2023-11-30 03:24:08 24 4
gpt4 key购买 nike

我正在尝试编写一个使用 seek 方法的动态查询。我使用 addSeekAfter 作为 seek 的替代品是有缺陷的。我如何解决它?

// my current setup
create.select(TOPIC.ID, TOPIC.DESCRIPTION)
.from(TOPIC)
.orderBy(TOPIC.MODIFIED_ON.desc(), TOPIC.ID.desc())
.seek(recModifiedOn, ULong.valueOf(recentTopicId))
.limit(noOfRecords)
.fetch()
.map(new TopicRecordMapper());

// what I want to move to
SelectQuery query = create.selectQuery();
query.addSelect(TOPIC.ID, TOPIC.DESCRIPTION);
query.addFrom(TOPIC);
query.addOrderBy(TOPIC.MODIFIED_ON.desc(), TOPIC.ID.desc());
// below addSeekAfter is not yielding identical results as above
query.addSeekAfter(
DSL.field(TOPIC.MODIFIED_ON.le(TimeUtils.getTime(recentModifiedOn))),
DSL.field(TOPIC.ID.le(ULong.valueOf(recentTopicId))));
query.addLimit(noOfRecords);
query.fetch().map(new TopicRecordMapper());

最佳答案

DSL API提供了一种便捷的方法seek(T1, T2)其中:

.seek(value1, value2)

只是这个的缩写:

.seek(DSL.val(value1), DSL.val(value2))

事实上,大多数 jOOQ 的 API 都是为了方便而重载的,这样您就不必使用 DSL.val() 显式创建绑定(bind)值。一直以来。

但是,“模型 API”( see the manual's section about DSL vs model API for details ) 不包含那么多便捷方法。这意味着您必须显式创建绑定(bind)值。写下这个:

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 .

关于java - 乔克 : Unable to implement Seek in Dynamic Query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30687796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com