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节点并添加旧表达式和新表达式。
我试图通过使用 compileEPL() 方法编译它来修改 epl,并向例如 where 子句添加更多内容,但是我无法让它工作。
假设这是我的 epl:
select * from event where A = 1
我想使用 AND
添加另一个 where 条件然后我使用 compileEPL()
编译了 eplmodel.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节点并添加旧表达式和新表达式。