Saltar al contenido

Hibernate OneToMany java.lang.StackOverflowError

Entiende el código bien previamente a usarlo a tu trabajo si tdeseas aportar algo puedes compartirlo con nosotros.

Solución:

Tuve un problema muy similar. estaba usando Lombok’s @Data anotación en los objetos de mi modelo para generar captadores, definidores y otros métodos estándar automáticamente. creo que el toString() generado por Lombok introdujo una dependencia circular entre mi Team y League objetos. Cuando traté de conseguir el Set teams de mi League objeto, tengo un java.lang.StackOverflowError porque Spring estaba llamando al método toString para fines de registro.

Resolví esto deshaciéndome de Lombok’s toString() método. reemplacé el @Data anotación con Lombok @Getter y @Setter anotaciones De esa manera, todavía podría beneficiarme de getters y setters gratuitos sin obtener el toString() método.

La única forma en que puede lanzar un StackOverFlow es cuando se accede recursivamente a la liga de su equipo…

Equipo a Liga a Equipo a Liga

Supongo que hay alguna función que intenta convertir sus objetos en alguna otra representación de forma reflexiva o recursiva, lo que da como resultado un bucle infinito.

La dependencia circular puede originarse a partir de de LomboktoString() método generado automáticamente, si usa @Data notación compleja. Para excluir su dependencia circular para un determinado campo:

@Entity
@Data
public class Team 

  ...

  @ToString.Exclude
  @ManyToOne
  private League league;

Te mostramos las reseñas y valoraciones de los usuarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *