2011-07-18 21 views
7

He leídoCómo mapear la relación entre OneToOne POJOs utilizando @JsonManagedReference y @JsonBackReference

en busca de soluciones para trazar un mapa de uno a Una relaciones. Sin embargo, esas demostraciones en los artículos son todas de muchos a uno o de uno a muchos. De la demostración, concluyo que en la mayoría de los casos, anotaremos el lado UNO como @JsonManagedReference y el lado MUCHOS como @JsonBackReference.

Sin embargo, no hay ninguna pista sobre cómo asignar One-To-One. ¿Tiene alguna idea?

Además, ¿y si es bidireccional uno a uno?

Respuesta

15

Puede pensar que es solo un caso especial de uno a muchos; así que anotarás la referencia de 'padre' a 'hijo' como @JsonManagedReference, y 'child' a 'parent' como @JsonBackReference.

Un documento más que podría ser útil es el de FasterXML Jackson Wiki; El primer ejemplo es para una relación de uno a uno, y debería ser aplicable para su caso.

+0

¡Gracias! Tu respuesta es bastante útil para mí. Por cierto, ¿qué pasa si quiero mapear uno bi-direccional uno a uno? –

+0

La carcasa completamente bidireccional es cíclica, por lo que no es compatible actualmente: necesitaría un manejo adecuado de gráficos cíclicos (que también podrían manejar todas las demás combinaciones, pero requieren metadatos en JSON, identificaciones de objeto o similares) – StaxMan

+1

@JsonIdentityInfo funcionará. [JacksonFeatureObjectIdentity] (http://wiki.fasterxml.com/JacksonFeatureObjectIdentity) – pavan

Cuestiones relacionadas