Я задавал этот вопрос в группе Google scala-salat, но не получил ответа в течение нескольких дней, поэтому и пытаюсь здесь.
У меня есть класс case, в котором коллекция обернута в 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
)
Документ отлично хранится в Монго. Однако, когда я пытаюсь получить это, используя findOne
(с SalatDAO
или без него), поле адреса имеет текст JSON, представляющий адреса, а не класс регистра адресов.
В результате Lift-JSON пропускает все поля в моем классе дел с Option[Collection[A]]
в нем. Когда я удаляю Option
и просто иду с addresses=Set[Address]()
, это работает. Однако теперь я получаю пустые наборы в моем JSON, где нет данных, и у меня нет возможности узнать по обновлению, удалил ли потребитель записи, или я получаю пустую Set
, потому что потребитель не отправил это поле в исходном запросе.
Использование Option
установило бы для поля значение None
, что означало бы, что мне не пришлось бы беспокоиться о том, что оно пустое или измененное.
Любая помощь будет принята с благодарностью.