JPA/HIbernate duvida em tratar campo unique

6 respostas
P

tenho um campo que defini como unico e não pode ser nulo …

uma duvida qdo em um teste não coloco esse campo fiz debug ele vai até
o begin e não faz o persist e para e não dá mensagem alguma …

Tem como tratar essa situação ou existe alguma forma pra visualizar que o campo está nulo ???

@Column(unique=true, nullable=false) 
	private String nome;

6 Respostas

A

Verifica com está a estrutura da tabela ( DDL) , no banco de dados.
Veja se está realmente como a definição da classe Entity que você criou.

Marco Aurélio
[email removido]

P

como ficou no banco não deveria dar alguma mensagem qdo fizesse o insert ???

CREATE TABLE `user` (
  `USER_ID` bigint(20) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  'endereco' varchar(255) NOT NULL,
  PRIMARY KEY  (`USER_ID`),
  UNIQUE KEY `upn` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
A

Manda a classe entity completa e o seu codigo onde está persistindo.

Por favor.

Marco Aurélio
[email removido]

P

não deveria dar erro com isso ???

CREATE TABLE `user` (
  `USER_ID` bigint(20) NOT NULL auto_increment,
   `name` varchar(255) NOT NULL,
  PRIMARY KEY  (`USER_ID`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
A

Manda a classe que cria a tabela.

P
public class User {
	@Id
	@GeneratedValue
	@Column(name = "USER_ID")
	/** Identificador único */
	private Long id;
	@Column(unique=true, nullable=false) 
	/** Nome do usuário */
	private String name;
	@Column(nullable = false)
	/** E-mail do usuário */
	private String email;
	@ManyToOne(cascade =javax.persistence.CascadeType.ALL)
	@JoinColumn (name = "PAPEL_ID")
	/** Papéis que um usuário xxxx pode exercer. */
	//private Map<String, Papel> roles = new HashMap<String, Papel>();
                private Papel role;	
	@Column
	private GregorianCalendar birthDate;
	@Column
	private String profession;
	@Column
	private Date admissionDate;
	@Column(unique=true, nullable=false) 
	private String upn;
Criado 27 de janeiro de 2009
Ultima resposta 27 de jan. de 2009
Respostas 6
Participantes 2