CONSTRAINT em Hibernate

create table tbl_user(
id int (10)AUTO_INCREMENT,
nome_completo varchar(150) not null,
email varchar (100) not null,
senha varchar (13) not null,
pp1 varchar (50),
pp2 varchar (50),
pp3 varchar (50),
pp4 varchar (50),
pp5 varchar (50),
sexo char (2),
data_nasc date,
personalidade varchar (40),
check (email!=null AND senha!=null AND nome_completo!=null),
CONSTRAINT pk_user Primary Key (id,email)
);

Como faço para criar um CONSTRAINT em hibernate!

Jah tenho id como chave primaria Mais quero q email tbm seja!!!

package br.com.oqTdar.entidades;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity(name="tbl_usuario")
public class usuario {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
@Column(name = "id_usuario")
long id_user;

@Column(name="nome_usuario",nullable = false, length = 150) 
String nome_user;
@Column(name="email_usuario",nullable = false, length = 100) 
String email_user;
@Column(name="senha_usuario",nullable = false, length = 13) 
String senha;
@Column(name="pp1_usuario", length = 50) 
String pp1_usuario;
@Column(name="pp2_usuario", length = 50) 
String pp2_usuario;
@Column(name="pp3_usuario", length = 50) 
String pp3_usuario;
@Column(name="pp4_usuario", length = 50) 
String pp4_usuario;
@Column(name="pp5_usuario", length = 50) 
String pp5_usuario;
@Column(name="sexo_usuario", length = 50) 
String sexo_usuario;
@Column(name="data_nasc_usuario") 
String data_nasc_usuario;
@Column(name="personalidade_usuario", length = 40) 
String personalidade_usuario;

    public String getPp1_usuario() {
        return pp1_usuario;
    }

    public void setPp1_usuario(String pp1_usuario) {
        this.pp1_usuario = pp1_usuario;
    }

    public String getPp2_usuario() {
        return pp2_usuario;
    }

    public void setPp2_usuario(String pp2_usuario) {
        this.pp2_usuario = pp2_usuario;
    }

    public String getPp3_usuario() {
        return pp3_usuario;
    }

    public void setPp3_usuario(String pp3_usuario) {
        this.pp3_usuario = pp3_usuario;
    }

    public String getPp4_usuario() {
        return pp4_usuario;
    }

    public void setPp4_usuario(String pp4_usuario) {
        this.pp4_usuario = pp4_usuario;
    }

    public String getPp5_usuario() {
        return pp5_usuario;
    }

    public void setPp5_usuario(String pp5_usuario) {
        this.pp5_usuario = pp5_usuario;
    }

    public String getSexo_usuario() {
        return sexo_usuario;
    }

    public void setSexo_usuario(String sexo_usuario) {
        this.sexo_usuario = sexo_usuario;
    }

    public String getData_nasc_usuario() {
        return data_nasc_usuario;
    }

    public void setData_nasc_usuario(String data_nasc_usuario) {
        this.data_nasc_usuario = data_nasc_usuario;
    }

    public String getPersonalidade_usuario() {
        return personalidade_usuario;
    }

    public void setPersonalidade_usuario(String personalidade_usuario) {
        this.personalidade_usuario = personalidade_usuario;
    }

 public long getId_user() {
        return id_user;
    }

    public void setId_user(long id_user) {
        this.id_user = id_user;
    }

    public String getNome_user() {
        return nome_user;
    }

    public void setNome_user(String nome_user) {
        this.nome_user = nome_user;
    }

    public String getEmail_user() {
        return email_user;
    }

    public void setEmail_user(String email_user) {
        this.email_user = email_user;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }



}

As constraints são adicionadas através dos parâmetros das anotações ou do XML que não é o seu caso.

Quando você usa a opção nullable você adiciona uma constraint ao banco. Sinceramente não sei até onde você pode chegar incluindo constraints através das annotations, mas, existe um framework chamado hibernate-validations que serve para adicionar constraints no seu modelo e não no banco de dados.

cara,

vc vai ter que criar uma chave composta, da uma olhada aqui no guj ou google como faz isso.

t+

Agora que eu vi que a constraint que você quer é chave composta rsrsrs…

Existe mais de uma forma de você criá-la mas… pode-se algo do tipo

@Embeddable
public class ChaveComposta{

      @Column private long idUser;

     @Column private String email;

}

na sua classe

@EmbededId
@Column private ChaveComposta key;