Je souhaite sérialiser et désérialiser les entités hibernate qui contiennent d'autres entités au format JSON plat. Alors disons que j'ai les entités suivantes:Jackson - sérialisation des entités hibernate
clés:
@Entity
public class Key implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@Column(name = "KeyID")
private Long id;
@Column
private String description;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "KeyTypeID", nullable = false)
private KeyType keyType;
public Long getId() {
return id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public KeyType getKeyType() {
return keyType;
}
public void setKeyType(KeyType keyType) {
this.keyType = keyType;
}
}
KeyType:
@Entity
public class KeyType implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "KeyTypeID")
private Long id;
@Column(name = "Name", nullable = false, unique = true)
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Je veux sérialiser des objets de classe Key dans:
{
"keyID": 1,
"description": "key 1",
"keyTypeName": "Type 5" //this is Key.keyType.name
}
I veulent aussi pouvoir désérialiser au-dessus de JSON dans l'objet Key contenant l'entité KeyType. Est-ce possible en utilisant Jackson ou dois-je implémenter du code personnalisé?
Pour ce cas précis, vous devez utiliser une coutume sérialisé/désérialiseur htt p: //wiki.fasterxml.com/JacksonHowToCustomSerializers –