【发布时间】:2017-10-30 00:48:56
【问题描述】:
我有一个mysql查询,格式如下
dslContext
.select(
ITEMDATA.ITEMID,
ITEMDATA.COST,
ITEMNAMES.ITEMNAME
)
.from(ITEMDATA)
.join(ITEMNAMES)
.on(ITEMDATA.ITEMID=ITEMNAMES.ITEMID)
.where(conditions);
上述查询将 ITEMDATA 与 ITEMNAMES 表连接起来,以在结果中选择 ITEMNAME。我正在内存中缓存 ITEMNAMES 表,并希望避免与 ITEMNAMES 表连接。这将加快查询速度并简化查询,因为实际查询要复杂得多。
我想使用类似下面的东西。我想在提供 ITEMNAME 的选择参数列表中调用 itemNamesCache.getItemName 并返回选择结果的一部分。 getItemName 应该将响应中返回的 ITEMID 作为参数并给出 ITEMNAME。
dslContext.
select(
ITEMDATA.ITEMID,
ITEMDATA.COST,
itemNamesCache.getItemName(valueOfItemId)
)
.from(ITEMDATA)
.where(conditions);
P.S:我可以迭代结果并调用 itemNamesCache.getItemName。但如果可能的话,我想使用嵌入在查询中的东西
【问题讨论】:
-
注意:
ITEMDATA.ITEMID=ITEMNAMES.ITEMID这实际上不起作用。您可能想使用eq()方法