【发布时间】:2016-07-12 20:16:49
【问题描述】:
我有一个简单的例子:查找所有已售罄的商品。
Item 具有 initialQuantity 和 soldQuantity 整数字段。 (出于某种原因,我需要存储初始数量)
我正在尝试做类似的事情:
builder = new BooleanBuilder();
Predicate predicate = builder.and(item.initialQuantity.eq(item.soldQuantity)).getValue();
Iterable<Item> iterable = itemRepository.findAll(predicate);
但它没有按预期返回。 “.eq()” 看起来需要一个整数而不是 Path
【问题讨论】:
-
变量项是什么类型的?它是生成的 Q* 类吗?如果是,请显示对应数据库表的规格(我假设名称是item)。
-
是的,有 QItem。如果我使用 .eq(10) 或其他东西,这个查询就可以正常工作,但我想与表中的另一列进行比较,我该怎么做?
-
如果
initialQuantity和soldQuantity的类型为com.querydsl.core.types.dsl.NumberPath它应该可以工作。如果没有更多信息(错误、代码、数据库方案),这个问题没有意义。 -
所以没有错误,我只是没有得到我期望得到的值。我什至尝试了 builder.and(item.initialQuantity.eq(item.initialQuantity)) ,它应该始终返回 true,但使用此查询不会返回任何内容...
-
builder.and(item.initialQuantity.eq(item.initialQuantity))这只是您查询的一部分...其余的是什么?
标签: java sql querydsl boolean-expression