Estou com dificuldades em atualizar um objeto com hibernate. O seguinte JSON representa um Agendamento meu objeto que ainda não existe no banco. Porém paciente e dentista já existem no banco, por isso eles têm id.
{
"paciente":{
"id":1,
"nome": "Ramires Moreia",
"idade": 22
},
"dentista":{
"id": 2,
"crm" : "123-34",
"nome": "Edilaine Santiago"
},
"horario":{
"hora":7,
"minuto":30,
"diaDaSemana": "Segunda-Feira"
},
"observacao":"dor no dente"
}
Estou fazendo assim: Leia os comentário são auto explicativos
public class AgendamentoController {
public static String agendar(Request req, Response resp) {
//tranformo o JSON no objeto agendamento
Agendamento agendamento = new Gson().fromJson(req.body(), Agendamento.class);
EntityManager manager = new JPAUtil().getEntityManager();
manager.getTransaction().begin();
//busco o Dentista pelo ID
Dentista dentista = manager.find(Dentista.class, agendamento.getDentista().getId());
//tento adcionar o agendamento na agenda do dentista
//é aqui que a exceção é lançada
dentista.getAgenda().addAgendamento(agendamento);
manager.getTransaction().commit();
return "impllementando";
}
}
}
O Erro que eu recebo é:
javax.persistence.EntityExistsException: A different object with the same identifier value was already associated with the session : [br.edu.ifce.odonto.model.Dentista#2]