Bom dia, tenho uma Classe Pessoa, e as classes PessoaFisica e PessoaJuridica que herdam (extens) de pessoa.
Na classe venda como fica? No exemplo que eu tenho aqui tem um atributo
@ManyToOne
private Cliente cliente;
Eu não tenho separação de cliente e fornecedor. Tanto PessoaFisica quanto PessoaJuridica podem ser clientes. Como trabalho?
Obrigado.
Olha, não sei se entendi bem… Mas parece que você quer distinguir os clientes como pessoas física e jurídica?
F
FelipePaes
classVendaextendsPessoaJuridica{
classVendaextendsPessoaFisica{
lucasmartins
Na verdade no meu projeto eu nao cadastro clientes ou fornecedores, cadastro pressoas, fisica e juridica. quando juridica, tenho um campo (integer fornecedor) que atribuo 0 ou 1. Entendeu?
lucasmartins
PESSOA.JAVA
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packagemodelo;importjava.io.Serializable;importjavax.persistence.Column;importjavax.persistence.DiscriminatorColumn;importjavax.persistence.DiscriminatorType;importjavax.persistence.DiscriminatorValue;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.Inheritance;importjavax.persistence.InheritanceType;importjavax.persistence.ManyToOne;/** * * @author aluno */@Entity@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)publicclassPessoaimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@Id@GeneratedValue(strategy=GenerationType.AUTO)privateLongid;@Column(length=255)privateStringendereco;@Column(length=10)privateStringtelefone;@Column(length=10)privateStringcelular;@Column(length=150)privateStringemail;@ManyToOneprivateCidadecidade;@Column(length=8)privateStringcep;publicLonggetId(){returnid;}publicvoidsetId(Longid){this.id=id;}@OverridepublicinthashCode(){inthash=0;hash+=(id!=null?id.hashCode():0);returnhash;}publicStringgetCelular(){returncelular;}publicvoidsetCelular(Stringcelular){this.celular=celular;}publicStringgetCep(){returncep;}publicvoidsetCep(Stringcep){this.cep=cep;}publicCidadegetCidade(){returncidade;}publicvoidsetCidade(Cidadecidade){this.cidade=cidade;}publicStringgetEmail(){returnemail;}publicvoidsetEmail(Stringemail){this.email=email;}publicStringgetEndereco(){returnendereco;}publicvoidsetEndereco(Stringendereco){this.endereco=endereco;}publicStringgetTelefone(){returntelefone;}publicvoidsetTelefone(Stringtelefone){this.telefone=telefone;}@Overridepublicbooleanequals(Objectobject){// TODO: Warning - this method won't work in the case the id fields are not setif(!(objectinstanceofPessoa)){returnfalse;}Pessoaother=(Pessoa)object;if((this.id==null&&other.id!=null)||(this.id!=null&&!this.id.equals(other.id))){returnfalse;}returntrue;}@OverridepublicStringtoString(){return"modelo.Pessoa[id="+id+"]";}}
PESSOAFISICA.JAVA
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packagemodelo;importjava.io.Serializable;importjava.util.Date;importjavax.persistence.Column;importjavax.persistence.DiscriminatorValue;importjavax.persistence.Entity;importjavax.persistence.Temporal;importjavax.persistence.TemporalType;/** * * @author Lucas */@EntitypublicclassPessoaFisicaextendsPessoaimplementsSerializable{@Column(length=255)privateStringnome;@Column(length=11,unique=true,nullable=false)privateStringcpf;@Column(length=15)privateStringrg;@Temporal(TemporalType.DATE)privateDateaniversario;publicDategetAniversario(){returnaniversario;}publicvoidsetAniversario(Dateaniversario){this.aniversario=aniversario;}publicStringgetCpf(){returncpf;}publicvoidsetCpf(Stringcpf){this.cpf=cpf;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetRg(){returnrg;}publicvoidsetRg(Stringrg){this.rg=rg;}publicPessoaFisica(){}}
PESSOAJURIDICA.JAVA
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packagemodelo;importjava.io.Serializable;importjava.util.Date;importjavax.persistence.Column;importjavax.persistence.DiscriminatorValue;importjavax.persistence.Entity;importjavax.persistence.Temporal;importjavax.persistence.TemporalType;/** * * @author Lucas */@EntitypublicclassPessoaJuridicaextendsPessoaimplementsSerializable{@Column(length=255)privateStringrazao;@Column(length=15,unique=true,nullable=false)privateStringcnpj;@Column(length=15)privateStringinscricao;@Temporal(TemporalType.DATE)privateDateconstituicao;@Column(length=1)privateIntegerfornecedor;publicPessoaJuridica(){}publicStringgetCnpj(){returncnpj;}publicvoidsetCnpj(Stringcnpj){this.cnpj=cnpj;}publicDategetConstituicao(){returnconstituicao;}publicvoidsetConstituicao(Dateconstituicao){this.constituicao=constituicao;}publicIntegergetFornecedor(){returnfornecedor;}publicvoidsetFornecedor(Integerfornecedor){this.fornecedor=fornecedor;}publicStringgetInscricao(){returninscricao;}publicvoidsetInscricao(Stringinscricao){this.inscricao=inscricao;}publicStringgetRazao(){returnrazao;}publicvoidsetRazao(Stringrazao){this.razao=razao;}}