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!

questionAnswers(1)

yourAnswerToTheQuestion