Boa tarde amigos, tenho uma superclasse Permissionario e duas subclasses PermMilitar e PermCivil
Quando executo o sistema a Tabela Permissionario é criada com os campos da classe PermMilitar e a tabela PermCivil nem é criada.
segue código.
package br.mil.siscop.bean;
import java.sql.Timestamp;
import java.util.Date;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
@Entity
@Table(name = "permissionario")
public class Permissionario {
@OneToOne(mappedBy = "permissionario", fetch = FetchType.LAZY)
@OneToMany(mappedBy = "permissionario", fetch = FetchType.LAZY)
@Cascade(CascadeType.ALL)
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_permissionario")
private int idPermissionario;
@Column(name = "nome")
private String nome;
@Column(name = "nr_identidade")
private String nrIdentidade;
@Column(name = "email")
private String email;
@Column(name = "fone")
private String fone;
@Column(name="dt_nascimento")
@Temporal(TemporalType.DATE)
private Date dtNascimento;
@Column(name = "dt_cadastro")
private Timestamp dtCadastro;
@Column(name = "de_senha")
private String deSenha;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_perm_situacao", referencedColumnName = "id_perm_situacao")
private PermSituacao permSituacao;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_perm_tipo", referencedColumnName = "id_perm_tipo")
private PermTipo permTipo;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_orgao", referencedColumnName = "id_orgao")
private Orgao orgao;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="id_perfil", referencedColumnName = "id_perfil")
private Perfil perfil;
public int getIdPermissionario() {
return idPermissionario;
}
public void setIdPermissionario(int idPermissionario) {
this.idPermissionario = idPermissionario;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNrIdentidade() {
return nrIdentidade;
}
public void setNrIdentidade(String nrIdentidade) {
this.nrIdentidade = nrIdentidade;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFone() {
return fone;
}
public void setFone(String fone) {
this.fone = fone;
}
public Date getDtNascimento() {
return dtNascimento;
}
public void setDtNascimento(Date dtNascimento) {
this.dtNascimento = dtNascimento;
}
public Timestamp getDtCadastro() {
return dtCadastro;
}
public void setDtCadastro(Timestamp dtCadastro) {
this.dtCadastro = dtCadastro;
}
public String getDeSenha() {
return deSenha;
}
public void setDeSenha(String deSenha) {
this.deSenha = deSenha;
}
public PermSituacao getPermSituacao() {
return permSituacao;
}
public void setPermSituacao(PermSituacao permSituacao) {
this.permSituacao = permSituacao;
}
public PermTipo getPermTipo() {
return permTipo;
}
public void setPermTipo(PermTipo permTipo) {
this.permTipo = permTipo;
}
public Orgao getOrgao() {
return orgao;
}
public void setOrgao(Orgao orgao) {
this.orgao = orgao;
}
public Perfil getPerfil() {
return perfil;
}
public void setPerfil(Perfil perfil) {
this.perfil = perfil;
}
}
PermMilitar
package br.mil.siscop.bean;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(name = "perm_militar")
public class PermMilitar extends Permissionario {
@Column(name = "id_perm_militar")
private int idPermMilitar;
@Column(name = "nome_guerra")
private String nomeGuerra;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_posto_grad_espec", referencedColumnName = "id_posto_grad_espec")
private PostoGradEspec postoGradEspec;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_qas_qms", referencedColumnName = "id_qas_qms")
private QASQMS qasQMS;
public int getIdPermMilitar() {
return idPermMilitar;
}
public void setIdPermMilitar(int idPermMilitar) {
this.idPermMilitar = idPermMilitar;
}
public PostoGradEspec getPostoGradEspec() {
return postoGradEspec;
}
public void setPostoGradEspec(PostoGradEspec postoGradEspec) {
this.postoGradEspec = postoGradEspec;
}
public QASQMS getQasQMS() {
return qasQMS;
}
public void setQasQMS(QASQMS qasQMS) {
this.qasQMS = qasQMS;
}
public String getNomeGuerra() {
return nomeGuerra;
}
public void setNomeGuerra(String nomeGuerra) {
this.nomeGuerra = nomeGuerra;
}
}
PermCivil
package br.mil.siscop.bean;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "perm_civil")
public class PermCivil extends Permissionario {
@Column(name = "id_perm_civil", length = 6)
private int idPermCivil;
@Column(name = "nr_cpf", length = 11)
private String nrCPF;
public int getIdPermCivil() {
return idPermCivil;
}
public void setIdPermCivil(int idPermCivil) {
this.idPermCivil = idPermCivil;
}
public String getNrCPF() {
return nrCPF;
}
public void setNrCPF(String nrCPF) {
this.nrCPF = nrCPF;
}
}