/* * Pessoa.java * * Created on 19 de Novembro de 2006, 17:28 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */packagebr.unipar.jclinica.model;importjava.io.Serializable;importjavax.persistence.Column;importjavax.persistence.MappedSuperclass;/** * * @author Paulo Henrique Peres <[email removido]> */@MappedSuperclasspublicabstractclassPessoaimplementsSerializable{@Column(name="NOME",nullable=false,length=100)privateStringnome;@Column(name="EMAIL",nullable=false,length=50)privateStringemail;publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetEmail(){returnemail;}publicvoidsetEmail(Stringemail){this.email=email;}}
Classe Usuário que herda de Pessoa
/* * Usuario.java * * Created on 19 de Novembro de 2006, 17:34 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */packagebr.unipar.jclinica.model;importjavax.persistence.CascadeType;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.FetchType;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.JoinColumn;importjavax.persistence.ManyToOne;importjavax.persistence.SequenceGenerator;importjavax.persistence.Table;/** * * @author Paulo Henrique Peres <[email removido]> */@Entity@Table(name="USUARIO")@SequenceGenerator(name="SG_USUARIO",sequenceName="SG_USUARIO")publicclassUsuarioextendsPessoa{@Id@GeneratedValue(strategy=GenerationType.SEQUENCE)@Column(name="CODIGO_FK")privateintcodigo;@Column(name="TIPO_USUARIO",nullable=false,length=20)privateStringtipoUsuario;@Column(name="NOME_USUARIO",nullable=false,length=20)privateStringnomeUsuario;@Column(name="SENHA",nullable=false,length=20)privateStringsenha;publicintgetCodigo(){returncodigo;}publicvoidsetCodigo(intcodigo){this.codigo=codigo;}publicStringgetTipoUsuario(){returntipoUsuario;}publicvoidsetTipoUsuario(StringtipoUsuario){this.tipoUsuario=tipoUsuario;}publicStringgetNomeUsuario(){returnnomeUsuario;}publicvoidsetNomeUsuario(StringnomeUsuario){this.nomeUsuario=nomeUsuario;}publicStringgetSenha(){returnsenha;}publicvoidsetSenha(Stringsenha){this.senha=senha;}}
Desta forma, vai ser criado uma tabela só com todos os campos para o Usuário, existe mais formas, como por exempo, criar uma tabela pessoa e uma usuário, é bem simples, na documentação tem bastante coisa.
Valeu,
Paulo
A
Alexandre_Ferreira1
Valeu paulo, era isso mesmo…
Ainda nao testei…
Mas posso ver uma coisa, por exemplo o id neste caso eh salvo na tabela cliente?
A
Alexandre_Ferreira1
tah com cara de postgresql esse banco.
Correta essa informacao?
rs
pauloperes
Alexandre,
Serve para o PostgreSQL, mas to usando este código com o Firebird.
Quando a tua duvida em relação ao código, é o seguinte, no meu projeto é desse jeito, porém, já fiz uma vez da seguinte forma:
Classe Pessoa (== Tabela no Banco de Dados)
Classe Cliente (== Tabela no Banco de Dados se relacionando com Pessoa)
Classe Funcionario(== tabela no banco de dados se relacionando com o Pessoa)
Desta forma o que muda é a estratégia, veja, no lugar de:
Paulo, vc pode me passar os fontes do seu projeto.
So para eu continuar com meus estudos e aprender mais com os fontes reais de programacao no dia a dia?