Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Relacionamento ManyToMany Com atributos Could not write JSON: Infinite recursion

Bom dia, Estou tendo dificuldade para fazer esse relacionamento, ja pesquisei bastante. Já utilizei o "@JsonBackReference" e "@JsonBackReference", de certa maneira funciona, mais não mostra a ligação.

Não sei mais oque fazer nessa situação

Classe Produto

@Entity
@Getter
@Setter
@NoArgsConstructor
@ToString
@EqualsAndHashCode
@JsonIdentityInfo(
        generator = ObjectIdGenerators.IntSequenceGenerator.class, 
        property = "idProduto")
public class Produto implements Serializable {

        @Id
    @SequenceGenerator(name = "produto_generator", sequenceName = "produto_sequence", initialValue = 1, allocationSize = 1)
    @GeneratedValue(generator = "produto_generator")
    private Long idProduto;

Classe Atualizacao

@Entity
@Getter
@Setter
@NoArgsConstructor
@ToString
@EqualsAndHashCode
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "idAtualizacao")
public class Atualizacao implements Serializable {
      @Id
    @SequenceGenerator(name = "atualizacao_generator", sequenceName = "atualizacao_sequence", initialValue = 1, allocationSize = 1)
    @GeneratedValue(generator = "atualizacao_generator")
    private Long idAtualizacao;

Classe AtualizacaoProduto

@Entity
@Getter
@Setter
@NoArgsConstructor
@ToString
@EqualsAndHashCode
public class AtualizacaoProduto implements Serializable {

    @EmbeddedId
    private AtualizacaoProdutoID id;


    @ManyToOne
    @MapsId("produtoid")
    @JoinColumn(name = "produto_id")    
    private Produto produto;


    @ManyToOne
    @MapsId("atualizacaido")
    @JoinColumn(name = "atualizacao_id")
    private Atualizacao atualizacao;

}

Classe AtualizacaoProdutoID


@Embeddable
@Getter
@Setter
@EqualsAndHashCode
@AllArgsConstructor
@no
@ToString
public class AtualizacaoProdutoID implements Serializable {
       @Column(name = "produto_id")
    private Long produtoid;

    @Column(name = "atualizacao_id")
    private Long atualizacaoid;

}
2 respostas
solução!

Oi Arthur, vou tentar sugerir um caminho alternativo que acredito ser um pouco mais simples e que vai te ajudar na manutenção.

Cria uma classe exatamente com os atributos que você precisa que sejam serializados para json. Aí você cria um objeto dessa classe em função dos objetos de dominio que você já tem. Dessa forma você tem uma classe que só nasceu para ser serializadas e vai te poupar de ficar usando várias annotations do jackson...

Obrigado, vou fazer as alterações aqui!!