Ho fatto questa domanda nel gruppo di livello scala salat Google, ma non ci sono risposte per alcuni giorni, quindi ci provo qui.Salat non deserializzazione di insiemi che si associano all'opzione [Imposta [A]]
Ho una classe di caso che ha una collezione avvolta in un 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
)
Il documento viene memorizzato correttamente in Mongo. Tuttavia, quando provo a ottenere questo utilizzando findOne
(con o senza SalatDAO
) il campo degli indirizzi ha testo JSON che rappresenta gli indirizzi anziché la classe case Address.
Come risultato, Lift-JSON salta tutti i campi nella mia classe di caso con Option[Collection[A]]
in esso. Quando rimuovo lo Option
e vado semplicemente con addresses=Set[Address]()
, funziona. Comunque ora finisco con set vuoti nel mio JSON dove non ci sono dati, e non ho modo di scoprire su un aggiornamento se il consumatore ha rimosso le voci, o sto ottenendo un vuoto Set
perché il consumatore non ha inviato questo campo nella richiesta originale.
L'utilizzo di Option
avrebbe impostato il campo su None
, il che significherebbe che non dovrei preoccuparmi che sia vuoto o modificato.
Qualsiasi aiuto sarà molto apprezzato.
Thx per unire :) – AndreasScheinert
Tutte le idee su quando potrebbe essere sostenuto? Non voglio davvero tornare a usare Morphia :( – lobster1234