Mapeando classes herdadas com hibernate JPA

Galera, boa noite!

Como faço para fazer um mapeamento de uma classe abstrata no hibernate?

Eu tentei algo do tipo:

@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class Pessoa implements Serializable {
	
	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy=GenerationType.TABLE)
	private int id;
	private String nome;
...
}

E na classe que herda:

@Entity
@Table(name = "funcionario")
public class Funcionario extends Pessoa implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private String Especialidade

....
}

Criei um DAO apenas para adicionar os dados, porém dessa forma que eu to fazendo está sendo criado 2 tabelas, PESSOA e FUNCIONARIOS. PESSOA vem vazio, mas ta sendo criado, e funcionários tem todos os atributos da classe abstrata e da própria classe funcionário. Eu gostaria de saber qual anotação posso usar para esse caso, para que apenas a tabela funcionário seja criado e para que o ID fique como auto-incremento.

Obrigado!

Se ambas as classes representam uma única tabela tente usar o @Embedded e @Embeddable.

Exemplo:

1 curtida

Amigo, apague a tabela criada e tente assim:

@Entity
@Immutable
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
public class Pessoa {
1 curtida