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

Relacionamento ManyToOne com Chave Primaria Composta usando @EmbeddedId

Olá. Estou usando Spring Boot e com dificuldade para mapear o relacionamento ManyToOne de duas tabelas que estão ligadas por uma chave estrangeira composta, sendo que essa chave estrangeira possui dois campos da chave primaria (que tem 3 campos).

Não sei se o certo é o ManyToOne ficar na classe @Embeddable, ou se meu problema é outro.

No momento estou enfrentando e erro: "Failed to convert from type [java.lang.Object[]] to type [br.empresa.domain.funcionario.entities.Dependente]"

Tenho a seguinte estrutura:

public class Funcionario {
    @EmbeddedId
    private FuncionarioId funcionarioId;
    private ...

@Embeddable
public class FuncionarioId implements Serializable {
    @Column(name = "codigo")
    private Long nrMatricula;
    @Column(name = "data_registro")
    private Long dtHrReg;
    ...
public class Dependente {
    @EmbeddedId
    private DependenteId dependenteId;
    ...
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumns({ 
        @JoinColumn(name = "codigo", 
                    referencedColumnName = "codigo",
                    insertable = false,
                    updatable = false
                    ), 
        @JoinColumn(name = "data_registro", 
                    referencedColumnName = "data_registro",
                    insertable = false, 
                    updatable = false
                    )
    })
    private Funcionario funcionario;
    ...

public class DependenteId implements Serializable {
    @Column(name = "codigo")
    private Long nrMatricula;
    @Column(name = "data_registro")
    private Long dtHrReg;
    @Column(name = "sequencia")
    private Integer nrSeq;
    ...

Vocês poderiam me ajudar ? Ou indicar algum material que fale sobre uma situação parecida ?

Obrigado.

1 resposta
solução!

Olá Valdinei, tudo bem? Peço desculpas pela demora em ti responder! Algo que eu não vi no seu código e não sei se tem ou não é a anotação @Embeddable na classe DependenteId, talvez se o problema persistir você possa usar de criar uma outra classe para copiar os atributos da mesma para a entidade usando a anotação @IdClass.

Espero ter ajudado!

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