serializador personalizado único para todos os objetos anotados incorporados que os substituem por seus IDs
Eu tenho entidades como essas:
@Entity
public Product {
@Id
public int id;
public String name;
@ManyToOne(cascade = {CascadeType.DETACH} )
Category category
@ManyToMany(cascade = {CascadeType.DETACH} )
Set<Category> secondaryCategories;
}
e
@Entity
public Category {
@Id
public int id;
public String name;
@JsonCreator
public Category(int id) {
this.id = id;
}
public Category() {}
}
é possível anotar apenasCategory
classe oucategory
esecondaryCategories
propriedades com uma anotação que as serializará como apenas seus IDs quando incorporadas.
No momento, estou obtendo do servidor quando faço um GET para o produto com id = 1:
{
id: 1,
name: "product 1",
category: {id: 2, name: "category 2" },
secondaryCategories: [{id: 3, name: "category 3" },
{id: 4, name: "category 4" },
{id: 5, name: "category 5" }]
}
é possível voltar:
{
id: 1,
name: "product 1",
category: 2,
secondaryCategories: [3, 4, 5]
}
AnotaçãoCategory
aula com@JsonIdentityReference(alwaysAsId = true)
funciona geralmente, mas também retorna apenas IDs quando estou buscando uma ou uma lista de categorias. Eu preciso da conversão de identificação apenas quando a Categoria estiver incorporada.
Obrigado!