Avevo un campo LocalTime (utilizzando Joda Time) nella classe di dominio Grails.Deserializzare il tempo joda dalla stringa nei graal?
Class WorkDone{
LocalTime duration
}
Ora mi hanno alterato questo campo per String (con vincolo di testo) in modo che possa supportare durata maggiore di 24 ore.
String duration
Il problema è che ci sono già alcuni dati nel database. E voglio disinfettare quei dati attraverso le migrazioni di database in Grails. Sto usando Postgres che salva LocalTime come Bytea (dati binari).
Quando chiamo WorkDone.duration mi restituisce una stringa della forma:
\ xaced0005737200176f72672e6a6f64612e74696d652e4c6f63616c54696d65fffff44abbf29def0200024a000c694c6f63616c4d696c6c69734c000b694368726f6e6f6c6f677974001a4c6f72672f6a6f64612f74696d652f4368726f6e6f6c6f67793b78700000000000000000737200276f72672e6a6f64612e74696d652e6368726f6e6f2e49534f4368726f6e6f6c6f67792453747562a9c811667137502703000078707372001f6f72672e6a6f64612e74696d652e4461746554696d655a6f6e652453747562a62f019a7c321ae30300007870770500035554437878
Come posso estrarre il tempo da questa stringa?
Hai provato a mantenere il LocalTime campo e utilizzare [Joda Tempo Grails dei plugin] (http://gpc.github.io/grails-joda-time/ guida/persistence.html)? Inoltre perché usi 'LocalTime' invece di' Duration' per la durata persistente? – musketyr
Hai provato qualcosa del genere:
def str = "" as byte[]; def os = new ObjectInputStream(new ByteArrayInputStream(str)); LocalTime.Property.readObject(os);
– RaphaelNo, non l'ho ancora provato. Proverò a vedere. –