2
respostas

Relacionamento com Multipla Herança

Olá, poderia me ajudar um projeto de estudos?

Possuo as seguintes classes: Pessoa, Profissional, Nutricionista, Paciente e Usuario. Sendo que:

  • Paciente é filha de Pessoa;
  • Nutricionista é filha de Profissional;
  • Profissional é filha de Pessoa;
  • Usuario e Pessoa com relacionamento de 1:1

Fiz da seguinte forma:

@Entity
@Table(name="T_USUARIO")
@SequenceGenerator(name = "USUARIO_SEQ", sequenceName = "SQ_USUARIO_CODIGO")
@Data
public class Usuario implements Serializable {

    //serialVersionUID

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "USUARIO_SEQ")
    private Long id;

    @OneToOne
    @JoinColumn(name = "idPessoa", nullable = false)
    private Pessoa pessoa;
}
@Getter
@Setter
@MappedSuperclass
@SequenceGenerator(name = "sequenceGenerator", initialValue = 1, allocationSize = 1)
public class Pessoa implements Serializable {

    //serialVersionUID

    @Id
    @GeneratedValue(generator = "sequenceGenerator")
    private Long id;

}
@Getter
@Setter
@Entity(name = "T_PACIENTE")
@SequenceGenerator(name = "PACIENTE_SEQ", sequenceName = "SQ_PACIENTE_CODIGO", initialValue = 1, allocationSize = 1)
public class Paciente extends Pessoa {
    //serialVersionUID
}
@Getter
@Setter
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "TIPO_PESSOA", discriminatorType = DiscriminatorType.STRING)
public class Profissional extends Pessoa {
    //serialVersionUID
}
@Getter
@Setter
@Entity
@DiscriminatorValue("NUTRI")
public class Nutricionista extends Profissional {
    //serialVersionUID
}

Porém estou tendo o seguinte erro ao executar o SpringBoot: Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on br.com.assalin.model.Usuario.pessoa references an unknown entity: br.com.assalin.model.Pessoa

Poderia me ajudar a resolver esse problema? :D

2 respostas

Oi Gustavo,

Ta faltando o @Entity na classe Pessoa e por isso deu o erro.

Olá Rodrigo, beleza?

Após adicionar a anotação, retornou o seguinte erro: An entity cannot be annotated with both @Entity and @MappedSuperclass: br.com.assalin.model.Pessoa

Insira aqui a descrição dessa imagem para ajudar na acessibilidade