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

Estou com um problema de lógica para filtrar o cadastro e edição de meu agendamento de consulta

Estou Utilizando o componente Schedule do Primefaces(6.2) Meu projeto utiliza: Postgres, Hibernate, JSF.

Com o código desta maneira eu consigo cadastrar um novo agendamento e não consigo adicionar um novo agendamento para o mesmo médico no mesmo dataInicio e dataFim de um agendamento. (O objetivo era esse) Porém tenho o problema de que se eu tentar salvar um novo agendamento entre um agendamento já gravado, ele grava normalmente. Exemplo: Data inicio/DataFim Agendamento já gravado no banco 02/06/2019 20:00 02/06/2019 20:30

Novo agendamento: 02/06/2019 20:01 02/06/2019 20:25

Neste formato o agendamento é aceito normalmente, pois o filtro pega somente datainicial e final não o intevalo de tempo.

O filtro é atraves de uma query HQL, o metodo se chama validarMedico(linha 256)

Problema 1: O problema atual é que quando vou fazer a edição do mesmo agendamento não consigo salvar, pois é entendido pelo código que estou tentando salvar outro agendamento no mesmo dataInicio e dataFim de um agendamento já existente!

Problema 2: Ao editar um agendamento já criado e tentar salva-lo o registro é duplicado, o registro antes da edição se mantém e o novo é salvo alterado. código : https://gist.github.com/HumbertoMarthan/50b623e8fde615f73cce2e3a29b6dac2

1 resposta
solução!

Parece que sua estrutura de gravação do agendamento na base não está conseguindo identificar se o registro é novo ou não.

1) Como você sabe se um registro é novo na base ou é para edição? 2) A sua classe entity de agendamento possui a implementação dos métodos hashCode() e equals() o que torna o registro unívoco em casos de listas, comparações, etc?

Em geral as tabelas possuem um ID, o qual, quando é NULL significa ser um novo registro.

Se tiver dúvidas, poste aqui a sua classe entity de agendamento.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software