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

Problemas ao "Hydratar" identifier para entidade

Boa tarde galera, estou me batendo com esse problema e está tirando meu sono... Para alguns casos, o relacionamento funciona e para outros não.

org.hibernate.HibernateException: Encountered problem trying to hydrate identifier for entity [SingleTableEntityPersister(br.com.projeto.adapter.out.database.pacote.entity.CarteiraEntity)]

estou montando o seguinte relacionamento

    @OneToMany(fetch = FetchType.EAGER)
    @JoinColumn(name = "cd_paciente", referencedColumnName = "cd_paciente")
    private List<CarteiraEntity> carteira;

onde carteira, possui uma pk com 4 campos

@Embeddable
public class CarteiraKey implements Serializable {

    @Column(name = "cd_paciente")
    private Long cdPaciente;

    @Column(name = "cd_convenio", updatable = false, insertable = false)
    private Long cdConvenio;

    @Column(name = "cd_con_pla", updatable = false, insertable = false)
    private Long cdPlano;

    @Column(name = "nr_carteira")
    private Long nrCarteira;

}

Minha carteira entity possui

public class CarteiraEntity {

    @EmbeddedId
    private CarteiraKey key;

    @Column(name = "dt_validade")
    private LocalDate dtValidade;

    @Column(name = "sn_carteira_ativo")
    private String snCarteiraAtiva;

    @Column(name = "sn_ultima_carteira_utilizada")
    private String snUltimaCarteiraUtilizada;

    @OneToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "cd_convenio", insertable = false, updatable = false)
    private ConvenioEntity convenio;

    @OneToOne(fetch = FetchType.EAGER)
    @JoinColumns( {
            @JoinColumn(name="cd_convenio", nullable = false, updatable = false, insertable = false),
            @JoinColumn(name="cd_con_pla", nullable = false, updatable = false, insertable = false)} )
    private PlanoEntity plano;

Por algum motivo, sempre que o paciente não tem carteira válida, encontro esse erro (em alguns casos, em outros, da certo).

Alguma luz?

1 resposta
solução!

Se contar o problema ninguém acredita.

Um dos campos estava mapeado como Long, porém, mudaram o banco para String e ninguém avisou, com isso, começou a gravar Letras no campo e então quebrar a consulta que antes funcionava.

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