1
我目前正努力讓一些Esper EPL查詢工作。查詢是這樣看:Esper:在EPL查詢中鏈接屬性訪問和方法調用
select a.center.distance(b.center) as delta
from pattern [
every-distinct(a.id, b.id) (
a=org.example.PositionEvent -> b=org.example.PositionEvent
)
]
當我嘗試通過EPAdministrator.createEPL()
編譯成一個EPLStatement
這個它拋出以下異常:
com.espertech.esper.client.EPStatementException:錯誤的語句開始:無法按名稱「a.center」中加載類,請檢查進口
如果我修改了事件類和查詢閱讀這樣
select a.distance(b) as delta
from pattern [
every-distinct(a.id, b.id) (
a=org.example.PositionEvent -> b=org.example.PositionEvent
)
]
它編譯得很好。 Esper似乎將a.center.distance(...)
解釋爲類名,後跟靜態方法調用,而將a.distance(...)
解釋爲對象a
上的方法調用。
我該如何讓Esper將我的原始查詢解釋爲預期的(即作爲屬性訪問,然後是方法調用)?