EPStatmentObject 模型不工作?

EPStatmentObject model not working?

我试图通过使用 compileEPL() 方法编译它来修改 epl,并向例如 where 子句添加更多内容,但是我无法让它工作。

假设这是我的 epl:

select * from event where A = 1

我想使用 AND

添加另一个 where 条件

然后我使用 compileEPL()

编译了 epl
model.getWhereClause().getChildren().add(Expressions.and()
                        .add(Expressions.eq("B", )));

而不是给我:

select * from event where A = 1 and B = 2 it just gives ..where A = 1 and not adding the new where clause.

我做错了吗? EPStatementObjectModel 可以很好地从头开始构建对象 EPL,但在编译和添加或修改它时却不行。

有人知道吗?谢谢

where 子句植根于 EQ,因为 "A=1"。

Expression equalsExpr = model.getWhereClause();

因此构造一个AND 子句,其中包含旧EQ 和新EQ。

Expression and = Expressions.and().add(equalsExpr).add(Expressions.eq("B", ...));

最后将 "and" 设置为新的 where-clause:

model.setWhereClause(and);

总而言之,在修改表达式时添加"and":当旧表达式本身不是AND时,您应该构建一个AND节点并添加旧表达式和新表达式。