Esper 的可选值
Optional values with Esper
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
)
如果我没记错的话,属性 的类型应该是 "java.util.Optional"。您可以使用 "A.eventtype.get()",其中 returns 是一个对象,需要强制转换,例如 "cast(A.eventtype.get(), int)"。如果事件类型只是装箱 "Integer" 可空值,那会更简单。 EPL 遵守 SQL92 标准,他们肯定没有 "optional".
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
)
如果我没记错的话,属性 的类型应该是 "java.util.Optional"。您可以使用 "A.eventtype.get()",其中 returns 是一个对象,需要强制转换,例如 "cast(A.eventtype.get(), int)"。如果事件类型只是装箱 "Integer" 可空值,那会更简单。 EPL 遵守 SQL92 标准,他们肯定没有 "optional".