POS Programação Orientada a String!

Pessoal to com uma dúvida aqui, CPF gostaria ele não force duplicado na hora do cadastro e não nulo e ele force chave primaria tbm !

como fica minha classe usando hiebernate ?

package br.gov.nutec.modelo;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="pessoa")
public class Pessoa implements Serializable {
	
	private static final long serialVersionUID = 2174678509151116408L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="pessoa_id")   // chave primaria
	private Long id;
	
	@Column(name="nome")
	private String nome; 

        @Column(name="digina")
	private String digina;

        @Column(name="data_matricula")
        @Temporal(javax.persistence.TemporalType.DATE)
	private Date data_matricula;

        @Column(name="RG")
	private String RG;

        @Column(name="orgao_exp")
	private String orgao_exp;

        @Column(name="CPF")  //chave primaria para melhorar a velocidade da pesquisa
	private  CPF;

         @Column(name="titulo_ele")
	private String titulo_ele;

        @Column(name="endereco")
	private String endereco;

        @Column(name="bairro")
	private String bairro;

        @Column(name="cidade")
	private String cidade;

        @Column(name="fone")
	private String fone;

        @Column(name="celular")
	private String celular;

	@Column(name="email")
	private String email;
	
	@Column(name="senha")
	private String senha;

	@Column(name="cpf")
	private String cpf;
	
	@Temporal(TemporalType.DATE)
	@Column(name="data_nasc")
	private Date dataNascimento;

	

	public void setNome(String nome) {
		System.out.println("Pessoa >> nome : "  + this.nome);
		
		this.nome = nome;
	}

	
	@Override
	public boolean equals(Object obj){
		if( (obj instanceof Pessoa) && ( ((Pessoa)obj).getCpf().equals(this.cpf)) ){
			return true; 
		}else{
			return false; 
		}
	}
}

Usando HibernateValidator

@NotNull //não permite valores nulos
@NotEmpty // não permite valores nulos ou vazio 

No caso do cpf ser único acho que uma boa saida seria colocar uma constraint no banco.

Espero ter ajudado.

e para valores duplicados nao permitir ? tipo CPF

?
Valeu !
to tentando pegar um pdf do Hibernate pra ler aqui !

coloca a propriedade UNIQUE na field CPF no banco de dados!!!

lauronolasco sabe onde pego um pdf atual do hibernate ? obrigado ! fica como isso na classe ?

Pelo que eu entendi, além de tudo vc quer que o CPF seja chave primeira. Uma chave sempre é única e diferente de nula, então simplesmente anotando como @Id suas condições já seriam satisfeitas. Agora como dica, recomendo não colocar CPF como PK, melhor setar um valor que não tenha significado. Até mesmo pq pode ter pessoas que não tenham CPF, como crianças. Então ao menos que o CPF realmente seja obrigatório, eu não iria por aí.
A documentação vc pode acessar online ou baixar no site do Hibernate.

[]s

bom material:
ftp://raphaela:web@users.dca.ufrn.br/UnP2007/Hibernate_Anotacoes.pdf

lauronolasco Show de bola, acabei de imprimir aqui ! Obrigado !

Vou te mandar uma camisa do MENGÃO por causa disso - risos !

Abraço !

sai daeh… mané mengão…

deus me livre…

São Paulo Futebol Clube
6 -3 -3

o resto é conversa!!!

lauronolasco , sua idéia é boa, eu estava fugindo dos gatilhos procedures etc… mas vou ter que meter a mão ! Vlw

Jr