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
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;