有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从命名窗口创建和选择

我在本地运行Esper,并且(通过XML)输入了一些EPL语句-

<?xml version="1.0" encoding="UTF-8"?>
<Statements>
    <Statement>
        create window OrderEventWindow.win:keepall() as select * from OrderEvent
    </Statement>
    <Statement>
        @Name("OrderEventsFromWindow")
        @Description("Outputs any Order events from the window")
        select * from OrderEventWindow
    </Statement>
    <Statement>
        @Name("OrderEventsFromDirect")
        @Description("Outputs any Order events from the feed")
        select * from OrderEvent
    </Statement>
</Statements> 

这似乎进展顺利,没有任何错误。但是,现在的问题是,上面的“OrderEventsFromWindow”语句似乎没有运行,因为我没有看到任何结果输出(尽管OrderEvent类型的事件进入)

奇怪的是,另一条语句“OrderEventsFromDirect”正在按预期工作

你知道我可能做错了什么吗?这可以解释为什么我的第一个语句没有显示任何输出

*注意:我的XML中的所有语句都在应用程序启动时输入,如下所示:

    for (String stmt : statements) {
        EPStatement statement = admin.createEPL(stmt);
        statement.addListener(this);
    }

共 (1) 个答案

  1. # 1 楼答案

    命名窗口开始为空,“create window OrderEventWindow.win:keepall()as OrderEvent”只定义命名窗口中的行类型,在您的例子中,它们与OrderEvent的行类型相同。 如果要插入的是“插入到OrderEventWindow select*from OrderEvent”,则需要将所有订单事件插入到指定的窗口中