scala Esper的可选值

flseospp  于 2022-11-09  发布在  Scala
关注(0)|答案(1)|浏览(147)

Esper中是否支持具有可选值的属性?
我正在使用Scala和Esper构建一个POC,并且让EPL查询处理非可选值。我有一个简单的对象,我用它来测试:

case class EsperEvent(@BeanProperty id: Int, @BeanProperty eventtype: Int)

并且可以通过以下查询获得我预期的结果:

select * from EsperEvent
 match_recognize (
   measures A as event1, B as event2
   pattern (A B)
   define
     A as A.eventtype = 2,
     B as B.eventtype = 3
 )

但是,当我将模型更改为以下内容时,似乎无法从Esper获得任何输出:

case class EsperEvent(@BeanProperty id: Int, @BeanProperty eventtype: Option[Int])

我已经尝试了上面的查询,并且还使用了如下动态属性:

select * from EsperEvent
  match_recognize (
   measures A as event1, B as event2
   pattern (A B)
   define
     A as A.eventtype? = 2,
     B as B.eventtype? = 3
  )
g6baxovj

g6baxovj1#

如果我没有记错的话,该属性的类型应该是“java.util.Optional”。您可以使用“A.venttype.get()”,它返回一个对象,并且需要进行强制转换,例如“cast(A.venttype.get(),int)”。如果事件类型只是将可为空的值装箱为“Integer”,情况会更简单。EPL遵循SQL92标准,他们肯定没有“可选的”。

相关问题