0

我在 apache cayenne 中编写表达式查询以从数据库中检索记录时遇到问题。

我的要求是从由特定 UserDn 创建的表中检索订单,其中订单状态不完整。它没有按预期给出结果。

我使用了下面的查询,但它只给出了由 UserDn 创建的结果,而忽略了“订单状态不完整”的表达式。

Expression expression = ExpressionFactory.matchExp(SAPOrder.CREATED_BY_USER_DN_PROPERTY,  userDN );
expression.andExp(ExpressionFactory.noMatchExp(SAPOrder.ORDER_STATUS_PROPERTY,  "Completed"));
SelectQuery query = new SelectQuery(SAPOrder.class, expression);
4

1 回答 1

2

您忽略了一个事实,即“andExp”和其他类似的表达式方法没有修改原始对象,而是创建了一个新的表达式对象。所以你需要改变的是:

expression = 
   expression.andExp(ExpressionFactory.noMatchExp(SAPOrder.ORDER_STATUS_PROPERTY,  "Completed"));
于 2013-07-03T06:24:21.677 回答