我在apache cayenne中编写表达式查询时遇到问题,无法从数据库中检索记录。
我的要求是从特定UserDn创建的表中检索订单,其中Order Status未完成。它没有按预期给出结果。
我使用了以下查询,但它只给出了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);
答案 0 :(得分:2)
您忽略了'andExp'和其他类似的Expression方法未修改原始对象并且正在创建NEW表达式对象的事实。所以你需要改变的是:
expression =
expression.andExp(ExpressionFactory.noMatchExp(SAPOrder.ORDER_STATUS_PROPERTY, "Completed"));