私は現在、いくつかのEsperEPLクエリを機能させるのに苦労しています。クエリは次のようになります。
select a.center.distance(b.center) as delta
from pattern [
every-distinct(a.id, b.id) (
a=org.example.PositionEvent -> b=org.example.PositionEvent
)
]
EPLStatement
これをviaにコンパイルしようとするとEPAdministrator.createEPL()
、次の例外がスローされます。
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に元のクエリを意図したとおりに解釈させることができますか(つまり、プロパティアクセスとそれに続くメソッド呼び出しとして)?