jtextfield en java netbeans
Jackson-serialización de entidades con relaciones birecionales(evitando ciclos) (2)
Tengo dos entidades:
Parent {
Child[] children;
}
and
Child {
Parent parent;
}
@JsonBackReference
y @JsonManagedReference
. Son buenos, si estoy serializando instancias de Parent
.
Pero también necesito transferir instancias de Child
y quiero que se parent
campo parent
.
En otras palabras:
- En la serialización de
Parent
debe tenerchildren
pero su campo principal puede estar vacío (se puede resolver usando las anotaciones de referencia json). - En la serialización de
Child
, debe tenerparent
con suschildren
(pero no es necesario que losparent
tenganchildren
.
¿Hay alguna manera de resolverlo usando las capacidades estándar de Jackson?
Es decir, omita la serialización de entidades que ya fueron serializadas en lugar de marcar los campos elegibles o no elegibles para la serialización.
Jackson 2.0 admite referencias completas de objetos cíclicos. Consulte " Jackson 2.0 liberado " (sección "Maneje cualquier gráfico de objetos, ¡incluso los cíclicos!") Para ver un ejemplo.
Básicamente, deberá usar la nueva @JsonIdentityInfo
para los tipos que requieren el manejo del estilo id / idref. En su caso, esto sería tanto Child
tipos Parent
como para Child
(si uno amplía el otro, simplemente agréguelo al tipo super y eso está bien).
implementación de interfaz muy útil se proporciona en la biblioteca de jackson 2 como
@Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
public class Parent { ....
@Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
public class Child { ....
en maven
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.0.2</version>
</dependency>
@StaxMan proporcionó un buen enlace para comenzar desde