2013-07-02 100 views
0

我有問題在apache卡宴寫入表達式查詢從數據庫檢索記錄。並在apache-cayenne加入查詢問題

我的要求是從特定UserDn創建的表中檢索訂單,其中訂單狀態未完成。它沒有按預期給出結果。

我使用了下面的查詢,但它給出的結果只是由UserDn創建的,並且忽略了「Order Status is not complete」和表達式。

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); 

回答

2

您忽略了'andExp'和其他類似的表達式方法沒有修改原始對象,而是創建一個NEW表達式對象的事實。所以你需要改變的是:

expression = 
    expression.andExp(ExpressionFactory.noMatchExp(SAPOrder.ORDER_STATUS_PROPERTY, "Completed"));