Atributo único com JPA

2 respostas
vpmaciel1981

O atributo nome da classe usuário não pode repetir.
O problema é que ele persiste usuários com mesmo nome.
Estou utilizando Hibernate, JPA e o banco de dados HSQLDB.

Alguém sabe o que pode estar errado nesta classe ?

package erp.usuario;

import java.io.Serializable;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.PersistenceContext;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

@PersistenceContext(unitName = "erp")
@Entity
@Table(uniqueConstraints = { @UniqueConstraint(columnNames = "nome") })
@SuppressWarnings("serial")
public class Usuario implements Serializable {
	@Column(length = 19)
	private String dataAlteracao;
	@Column(length = 19)
	private String dataInclusao;
	@Id
	@GeneratedValue
	private Long id;
	private Locale locale;
	@Column(unique = true, nullable = false, length = 10)
	private String nome;
	@Column(length = 10)
	private String senha;
	@ManyToOne
	private Usuario usuarioAlteracao;
	@ManyToOne
	private Usuario usuarioInclusao;
	@Enumerated
	private Grupo grupo;
}

2 Respostas

alexfe

olha no banco se a coluna foi criada com unique constraint

aszarael

Veja se o campo na tabela, não foi definido como chave primaria.

Criado 13 de julho de 2015
Ultima resposta 21 de jul. de 2015
Respostas 2
Participantes 3