scala - Salat 没有反序列化映射到 Option[Set[A]] 的集合

标签 scala mongodb salat lift-json

我在 scala-salat Google 小组中问了这个问题,但几天没有回复,因此在这里尝试。

我有一个案例类,它有一个包含在 Option 中的集合。

case class SomeClass(
  var name:Option[String]=None,
  var addresses:Option[Set[Address]]=None
)

case class Address(
  var street:Option[String]=None,
  var zip:Option[String]=None
) 

文档很好地存储在 Mongo 中。但是,当我尝试使用 findOne(有或没有 SalatDAO)来获取此地址时,地址字段具有表示地址的 JSON 文本,而不是地址案例类。

因此,Lift-JSON 会跳过我的案例类中包含 Option[Collection[A]] 的所有字段。当我删除 Option 并使用 addresses=Set[Address]() 时,它可以工作。但是,现在我的 JSON 中没有数据的结果是空集,如果消费者删除了条目,我无法找到更新,或者我得到一个空的 Set 因为消费者未在原始请求中发送此字段。

使用 Option 会将该字段设置为 None,这意味着我不必担心它为空或被修改。

任何帮助将不胜感激。

最佳答案

抱歉,Salat 目前不支持包含集合的选项。

关于scala - Salat 没有反序列化映射到 Option[Set[A]] 的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458517/

相关文章:

scala - 如何创建一对相互引用的不可变 Scala 实例?

scala - 玩!从单独的 mongo 集合中选择项目的表单

scala - Scala 中 "static"方法的特征?

xml - 如何根据选项添加或不添加 XML 属性?

mongodb - Linux透明大页(THP)性能评估

c# - 如何使用 2.4 C# Mongo 驱动程序运行解释查询?

json - 使用 Play Json 和 Salat 格式化可为空的 Seq 或对象列表

mongodb - Play Framework Leon Salat Model Form Mapping

java - JVM 语言的包

java - Mongo Java 驱动程序 - 如何将子文档更新为数组元素