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

Atributos ManyToMany não são retornados em método REST no spring Boot

Senhores,

Estou desenvolvendo um simples agendamento de consultas para uma SPA, utilizando JPA e Spring Boot. Achei excelente o framework, mas me deparei com um problema chato.

Tenho um método que devolve um JSON com uma lista de médicos. Por sua vez, a classe médico possui três listas ManyToMany (Convenios, Locais de Atendimento e Especialidades). Gostaria que oJSON resultado da chamada viesse com as listagens preenchidas, porém todas as listagens chegam vazias.

Observação: Fiz o mesmo código utilizando diretamente JPA e JAX-RS com Jersey e JACKSON que funcionou.

Se possível, preciso da ajuda de vocês.

insira seu código aqui

@Entity @PrimaryKeyJoinColumn(name = "id") public class Medico extends Usuario implements Serializable{

private static final long serialVersionUID = 2194546045026085699L;

private String nome; private String cpf; private String crm; private String endereco; private String numeroTelefoneResidencia; private String numeroCelular; @ManyToMany private List convenios; @ManyToMany private List locaisAtendimento; @ManyToMany private List especialidades;

//Gets e sets }

@Entity public class LocalAtendimento implements Serializable{

private static final long serialVersionUID = 6153564307019391613L;

@Id @SequenceGenerator(initialValue = 1,allocationSize = 1,name = "local_atendimento_seq",sequenceName = "local_atendimento_seq") @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "local_atendimento_seq") private Long id; private String nome; private String endereco; private String numeroTelefone; @ManyToMany(mappedBy = "locaisAtendimento") private List medicos; //Gets e sets }

@Entity public class Convenio implements Serializable{

private static final long serialVersionUID = 1964872250828573358L;

@Id @SequenceGenerator(initialValue = 1,allocationSize = 1,name = "convenio_seq",sequenceName = "convenio_seq") @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "convenio_seq") private Long id; private String nome; @ManyToMany(mappedBy = "convenios") private List medicos;

//Gets e sets

}

@Entity public class Especialidade implements Serializable{

private static final long serialVersionUID = 7650653734406070201L;

@Id @SequenceGenerator(initialValue = 1,allocationSize = 1,name = "especialidade_seq",sequenceName = "especialidade_seq") @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "especialidade_seq") private Long id; private String nome; @ManyToMany(mappedBy = "especialidades") private List medicos; //Gets e sets }

@Repository public class MedicoDAO {

@PersistenceContext private EntityManager entityManager;

public List getMedicos(){ TypedQuery query = entityManager.createQuery("SELECT m FROM Medico m", Medico.class); return query.getResultList(); }

}

@RestController public class AgendamentoService {

@Autowired private MedicoDAO medicoDAO;

@RequestMapping(path="/api/agendamento/medicos") public List getMedicos() { return medicoDAO.getMedicos(); }

}

1 resposta
solução!

Já foi resolvido.