In riferimento a: Primavera tecnica Versione 2.0.2 Restoprimavera dati REST - POST nuova entità con le relazioni
Sto cercando di pubblicare un entità (Address) con un @ManyToOne (invece di @OneToOne come nell'esempio) legame con la persona come spiegato in: Embedded Entity references in complex object graphs ma ottengo un errore di Jackson:
org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: (was java.lang.NullPointerException) (through reference chain: Address["person"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: Address["person"])
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.readJavaType(MappingJackson2HttpMessageConverter.java:228) ~[spring-web-4.0.3.RELEASE.jar:4.0.3.RELEASE]
trovo strano che io possa inviare un oggetto JSON con rel e href l'attributo "persona" di indirizzo come:
"person": {
"rel" : "people.Person",
"href" : "http://localhost:8080/people/1"
}
È ancora valido? La pagina di riferimento è piuttosto vecchia (2012). Ci sono documenti aggiornati. Ho rivisto il documento di riferimento anche per l'ultimo (fino ad oggi) 2.1.0 RC1, ma trovo che manchi.
Qualsiasi puntatore sarebbe apprezzato.
Stackoverflow mi ha suggerito di vedere this question, che, nel mio caso, non riesce con uno Stato HTTP 405 - Il metodo di richiesta 'POST' non è supportato ... che è probabilmente un problema di configurazione, ma la mia domanda originale è valida.
Update 1: Dalla sezione di riferimento Doc 4.1 si dice:
Sometimes the behavior of the Spring Data REST's ObjectMapper, which has been specially configured to use intelligent serializers that can turn domain objects into links and back again, may not handle your domain model correctly. There are so many ways one can structure your data that you may find your own domain model isn't being translated to JSON correctly. It's also sometimes not practical in these cases to try and support a complex domain model in a generic way. Sometimes, depending on the complexity, it's not even possible to offer a generic solution.
Il problema potrebbe essere che sto usando un custom Jackson ObjectMapper con il supporto Hibernate. Proverò a scavare ulteriormente.
Aggiornamento 2: Non importa aggiornare 1, ho rimosso Hibernate4Module e il comportamento è lo stesso.
Si dovrebbe provare a circondare il {} con "" –
@ShayElkayam ??? Ti piacerebbe elaborare ... – pakman
hai configurato le tue annotazioni JPA come mostrato qui ?? [Java Persistence/ManyToOne] (http://en.wikibooks.org/wiki/Java_Persistence/ManyToOne) – GregoAvg