Otávio segue o código.
package br.com.labsementes.metadados.cadastro;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.ForeignKey;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
@Entity
@Table(name="cadpessoa",
uniqueConstraints = @UniqueConstraint(columnNames="cidade_id", name="uk_cidade"))
public class CadPessoa {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Column(nullable=false, length=100)
private String razao_social;
@Column(nullable=false, length=100)
private String nome_fantasia;
@Enumerated(EnumType.STRING)
@Column(nullable=false, length=1)
private TipoPessoa tipo_pessoa;
@Enumerated(EnumType.STRING)
@Column(nullable=false, length=1)
private TipoFisicaJuridica tipo_fis_jur;
@Column(nullable=true)
private Integer inscricao_estadual;
@Column(nullable=true)
private Integer inscricao_municipal;
@Column(nullable=true, length=14)
private String cpf;
@Column(nullable=true, length=18)
private String cnpj;
@Column(nullable=true, length=255)
private String endereco;
@Column(nullable=true, length=255)
private String complemento;
@Column(nullable=true, length=100)
private String bairro;
@Column(nullable=true, length=9)
private String cep;
@Column(nullable=true, length=25)
private String telefone;
@Column(nullable=true, length=100)
private String email;
@Column(nullable=true, length=20)
private String renasem;
@Column(nullable=true, length=20)
private String crea;
@JoinColumn(foreignKey = @ForeignKey(name="fk_cidade"))
@OneToOne
private CadCidade cidade;
@OneToMany
@JoinTable(name="cadpessoa_cadpessoa",
joinColumns=
{@JoinColumn(
foreignKey = @ForeignKey(name="fk_pessoa"),
referencedColumnName="id",
name="cadpessoa_id"),
@JoinColumn(
foreignKey = @ForeignKey(name="fk_resp_tec"),
referencedColumnName="id",
name="responsavel_tecnico_id")
})
private List<CadPessoa> responsavel_tecnico;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getRazaoSocial() {
return razao_social;
}
public void setRazaoSocial(String razao_social) {
this.razao_social = razao_social;
}
public String getNomeFantasia() {
return nome_fantasia;
}
public void setNomeFantasia(String nome_fantasia) {
this.nome_fantasia = nome_fantasia;
}
public TipoPessoa getTipoPessoa() {
return tipo_pessoa;
}
public void setTipoPessoa(TipoPessoa tipo_pessoa) {
this.tipo_pessoa = tipo_pessoa;
}
public TipoFisicaJuridica getTipoFisJur() {
return tipo_fis_jur;
}
public void setTipoFisJur(TipoFisicaJuridica tipo_fis_jur) {
this.tipo_fis_jur = tipo_fis_jur;
}
public Integer getInscricao_estadual() {
return inscricao_estadual;
}
public void setInscricao_estadual(Integer inscricao_estadual) {
this.inscricao_estadual = inscricao_estadual;
}
public Integer getInscricao_municipal() {
return inscricao_municipal;
}
public void setInscricao_municipal(Integer inscricao_municipal) {
this.inscricao_municipal = inscricao_municipal;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getRenasem() {
return renasem;
}
public void setRenasem(String renasem) {
this.renasem = renasem;
}
public String getCrea() {
return crea;
}
public void setCrea(String crea) {
this.crea = crea;
}
}