[INICIANTE] Problema com mapeamento bidirecional JPA com Spring Boot

Seguinte, to começando com Spring. No processo, ja estou lançando dados do banco como JSON na url… tudo ate o momento normal! Mas vcs sabem como é java né! Uma hora dá m*rda! Não tem pra onde correr… Eu fui meter o bidirecional entre duas tabelas, uma USUARIOS e outra CARGO, aí na Usuarios eu lancei um obj do tipo Cargo e anotei com “ManyToOne”, e na Cargo eu colocquei uma lista de usuarios anotada com “OneToMany” + “JoinColumn(name = “cargo”)”. Aí da a merda! Quando ta o relacionamento unidirecional (Usuarios com ubj Cargo) da certo, quando eu lanco a lista o bicho pega e o Spring me retorna essa caramba aí… Tenho certeza que e alguma informação que preciso passar mas não sei qual… por fvr me ajudem. Vai ai o retorno do JSON dando um relacionamento infinito de objetos

Se livre dessas aberrações de modelo de entidades OO. Trabalhe com DTO , criando uma estrutura específica pra funcionalidade que tiver desenvolvendo no momento, sem essas misturas de um modelo de classes genérico pra tentar atender todas as possibilidades e quase sempre impactar um monte de coisas na hora de precisar dar manutenção em uma funcionalidade.

Como estão mapeadas suas entidades?
Poste o código!

Então meu caro. Relacionamento bidirecional e serialização para json são um problema (e não exclusivo do java). Mesmo com problemas que o java possa oferecer, garanto que é mais problema na forma de desenvolver do que da tecnologia em si.

O seu caso é facilmente contornado utilizando um @JsonIgnore ou um DTO (recomendado).

Eu vou postar o código das duas entidades assim que possível

como o colega citou quando tem relacionamento bidirecional tem que anotar a o atributo de relacionamento com @JsonIgnore, se nao a aplicaço entra num loop infinito pois quando ele vai converter o array do relacioanemento, tem o mesmo objeto que eles esta convertendo la dentro, que por sua vez tem o o mesmo array exempo:

PRODUTO --------------> PRODUTO_EMPRESA <------ EMPRESA
produtosEmrpesa…produto / empresa…empesaProdutos

nesse modelo ai voce precisa colocar o @JsonIgnore nos arrays, pq quando ele for transformar o produto em json, ele vai achar o array, mas no objeto do array tb tem um produto, ai ele vai converter o produto que por sua vez tera o array tambem … Ou usa o JsonIgnore, ou voce mantem o model para grantir a integridade da sua aplicacao com o banco pois o model é o reflexo das tabela. e usa objetos DTO que será o que irá trafegar entre seus backend e seu frontend digamos assim. E usa o model apenas para as persistencias.