Listar dados de uma relação @ManyToMany

13/01/2021

6

Pessoal,

Criei uma relação @ManyToMany entre as entidades Paciente e Alergia gerando uma tabela auxiliar chamada alergia_pacientes que guarda os ids de ambas. Estou tentando listar os pacientes cadastrados e mostrar o tipo de alergia de cada um deles, porém o resultado que recebo é este "Alergia: [Alergia [id=1, alergia=LEITE], Alergia [id=2, alergia=FRUTOS DO MAR]] [Alergia [id=1, alergia=LEITE], Alergia [id=2, alergia=FRUTOS DO MAR]]". O resultado está até correto, mas só quero receber os nomes. As minhas classes estão assim:

Metodo lista Classe PacienteController
@GetMapping("lista")
    public String lista(Model model) {
        List <Paciente> pacientes = pacienteRepository.findAll();
        model.addAttribute("pacientes", pacientes);
            return "paciente/lista";
    }


Classe Paciente
@ManyToMany(cascade = CascadeType.ALL, mappedBy = "pacientes")
    private List<Alergia> alergias = new ArrayList<Alergia>(); 


Classe Alergia
@ManyToMany
    @JoinColumn(name = "paciente_alergia")
    private List<Paciente> pacientes ;


Html para mostrar o resultado
<div class="col-md-6 alert alert-dark">
    <label class="form-label">Alergia:</label>
    <div th:text="${paciente.alergias}"></div>                                
</div>
Responder

Posts

14/01/2021

Eduardo

Consegui resolver com th:each.

        <div class="col-md-6 alert alert-dark"  >
		<label class="form-label">Alergia:</label>
		<div th:each = "paciente : ${paciente.alergias}" th:text="${paciente.alergia}">
               </div>									
	</div>
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar