Como eu faço para mapear na classe o hibernate utilizando heranças. Por exemplo, abaixo eu tenho uma classe Usuário que herda a classe fisico. Se vocês notarem a vários erros de implementação do Hibernate eu gostaria de criar uma tabela de banco de dados que o Usuário herdasse as características de físico, e como faço isso?
Classe Usuario
@Entity
@Table(name="usuario")
public class UsuarioMd implements Serializable {
@Id
@Column(name="usuario_id")
private int id;
@Column(length=100, name="nome")
private String nome;
@Column(length=50, name="senha")
private String senha;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="fisico_id", insertable=true, updatable=true, nullable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.ALL)
private FisicoMd fisico;
/* @ManyToOne
private JuridicoMd juridico;
*/
@Column(length=150, name="rua")
private String rua;
@Column(length=10, name="numero")
private int numero;
@Column(length=40, name="complemento")
private String complemento;
@Column(length=50, name="bairro")
private String bairro;
/* @Column(length=50, name="cidade")
private String cidade;
*/
@Column(length=2, name="uf")
private String uf;
@Column(length=50,name="email")
private String email;
@Column(length=12,name="fone")
private int fone;
@Column(name="administrador")
private boolean administrador;
@Column(length=1, name="sexo")
private String sexo;
...
Classe Fisico()
@Entity
@Table(name="fisico")
public class FisicoMd extends UsuarioMd {
@Id
@Column(name="fisico_id")
private int id;
@Column(name="cpf", length=14)
private String cpf;
@Column(name="rg")
private String rg;
@OneToMany(mappedBy="fisico", fetch=FetchType.LAZY, targetEntity=UsuarioMd.class)
private Collection usuarios;
@Column(name="usuario_id")
private int usuarioId;
...