В настоящее время я изо всех сил пытаюсь получить некоторые запросы EPS Eper. Запросы ищут так:Эспер: доступ к цепочке доступа и вызовы методов в запросах 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
)
]
Когда я пытаюсь скомпилировать это в EPLStatement
через 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
.
Как я могу заставить Эспер интерпретировать мой первоначальный запрос как предназначенный (т. Е. Как доступ к ресурсу, за которым следует вызов метода)?