我在apache cayenne中编写表达式查询以从数据库中检索记录时遇到问题。
我的需求是从一个由特定UserDn创建的表中检索订单,该表的订单状态为not complete。它没有给出预期的结果。
我使用了下面的查询,但它只给出了由UserDn创建的结果,并忽略了and表达式“订单状态未完成”。
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);发布于 2013-07-03 14:24:22
您忽略了一个事实,即'andExp‘和其他类似的表达式方法并没有修改原始对象,而是创建了一个新的表达式对象。因此,您只需更改以下内容:
expression =
expression.andExp(ExpressionFactory.noMatchExp(SAPOrder.ORDER_STATUS_PROPERTY, "Completed"));https://stackoverflow.com/questions/17428994
复制相似问题