Restrição de 'nomes' iguais. [RESOLVIDO]

6 respostas
yumelee

Tenho um campo “nome” em uma tabela.
Não queria deixar que cadastrassem mais de um mesmo nome…
Eu pensei que colocar unique=true fosse suficiente.

@NotEmpty(message="Insira um nome para o projeto.")
	@Length(max=45)
	@Column(name = "NOME", nullable = false, unique = true, length = 45)	
	public String getNome() {
		return nome;

Devo fazer algum método pesquisando se ha o ‘nome’ cadastrado antes de inserir, ou existe algum mecanismo no Hibernate que facilite isso?

Do jeito que coloquei, simplesmente é ignorado e cadastros varios ´nomes´ iguais !

6 Respostas

UMC
Nome = UMC ;

Nome2 = UMC ;

nao pode  ter outro !!?? e isso?

o unique resolve isso!!

vlw

abs
yumelee

Não, não resolve !
Então coloquei (veja meu código) algo errado.
Cadastrei vários nomes com conteúdo: ‘abc’.

T

Pode ser, por exemplo, que a tabela do banco onde está esse campo não esteja corretamente cadastrada.
Cheque se há algum constraint nessa tabela.
Quem checa a unicidade não é o Hibernate e sim o banco, se não me engano, até porque o Hibernate não tem o compromisso de sempre manter TODOS os registros do banco em memória para ele mesmo checar a unicidade.

yumelee

Bom, a minha tabela é criada a partir do objeto !
Não sou eu que crio a tabela…
Eu pensei que na hora de inserir, o Hibernate verificava e neste caso daria alguma exceção.

yumelee

Deletei a tabela na mão e passou a funcionar !
Obrigada a todos !

(agora tenho que tratar a exceção).

abs

UMC

d nada!
flws!!
vlw
abs

Criado 14 de janeiro de 2010
Ultima resposta 14 de jan. de 2010
Respostas 6
Participantes 3