ESPER: Chaîne d'accès et appels de méthode dans les requêtes EPL
-
30-10-2019 - |
Question
J'ai actuellement du mal à faire fonctionner des requêtes EPL EPL. Les requêtes ressemblent à ceci:
select a.center.distance(b.center) as delta
from pattern [
every-distinct(a.id, b.id) (
a=org.example.PositionEvent -> b=org.example.PositionEvent
)
]
Quand j'essaie de compiler cela dans un EPLStatement
passant par EPAdministrator.createEPL()
Il lance l'exception suivante:
com.espertech.esper.client.epstatementException: Erreur Instruction de démarrage: Impossible de charger la classe par le nom «A.Center», veuillez vérifier les importations
Si je modifie les classes d'événements et la requête à lire comme ceci
select a.distance(b) as delta
from pattern [
every-distinct(a.id, b.id) (
a=org.example.PositionEvent -> b=org.example.PositionEvent
)
]
il compile très bien. Esper semble interpréter a.center.distance(...)
comme nom de classe suivi d'une invocation de méthode statique, alors qu'elle interprète a.distance(...)
comme méthode appelle l'objet a
.
Comment puis-je faire interpréter ESPER ma requête d'origine comme prévu (c'est-à-dire comme un accès à la propriété suivi d'une invocation de méthode)?
Pas de solution correcte