EPStatmentObject模型无法正常工作?

时间:2016-09-19 22:27:53

标签: esper

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

让我们说这是我的个人资料:

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,但不能在编译它时添加或修改它。

有谁知道吗?感谢。

1 个答案:

答案 0 :(得分:0)

where-clause以“A = 1”为根,以EQ为根。

Expression equalsExpr = model.getWhereClause();

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

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

最后将“and”设置为新的where子句:

model.setWhereClause(and);

总之,当修改表达式以添加“和”时:当旧表达式本身不是AND时,您应该构建AND节点并添加旧表达式和新表达式。