Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Listar dados de uma relação @ManyToMany

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>
1 resposta
solução!

Consegui resolver com for 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>