Hibernate Validator

Boa tarde galera,
iniciei semana passada uns estudos sobre utilização do Hibernate,
hoje vi um exemplo utilizando o Hibernate Validator.
Consegui montar legal, tá funcionando.
Agora uma dúvida, como posso utilizar com Annotation uma validação para ver se já existe um registro cadastrado pelo nome por exemplo.
Minha classe:

[code]package br.com.model;

import java.util.Date;

import org.hibernate.validator.Email;
import org.hibernate.validator.NotEmpty;
import org.hibernate.validator.NotNull;
import org.hibernate.validator.Range;

public class Usuario implements java.io.Serializable {

// Fields
private Integer codigo;

@NotEmpty (message="Campo obrigatório!")
private String nome;

@NotEmpty (message="Campo obrigatório!")
private String login;

@NotEmpty (message="Campo obrigatório!")
private String senha;

@NotNull (message="Campo nascimento obrigatório!")
private Date dtNascimento;

@Range (min = 1, message="O campo deve ter valor mínimo de 1!")
private int qtdEmail;

@NotEmpty (message="Campo obrigatório!")
@Email (message="E-mail inválido!")
private String email;

// Constructors

/** default constructor */
public Usuario() {
}

// Property accessors

public Integer getCodigo() {
	return this.codigo;
}

public void setCodigo(Integer codigo) {
	this.codigo = codigo;
}

public String getNome() {
	return this.nome;
}

public void setNome(String nome) {
	this.nome = nome.trim();
}

public String getLogin() {
	return this.login;
}

public void setLogin(String login) {
	this.login = login.trim();
}

public String getSenha() {
	return this.senha;
}

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

public Date getDtNascimento() {
	return this.dtNascimento;
}

public void setDtNascimento(Date dtNascimento) {
	this.dtNascimento = dtNascimento;
}

public Integer getQtdEmail() {
	return this.qtdEmail;
}

public void setQtdEmail(Integer qtdEmail) {
	this.qtdEmail = qtdEmail;
}

public String getEmail() {
	return this.email;
}

public void setEmail(String email) {
	this.email = email;
}

}[/code]
Aí fiz um Validator p/ ela:

[code]package br.com.model.validacao;

import br.com.model.Usuario;
import org.hibernate.validator.ClassValidator;
import org.hibernate.validator.InvalidValue;

public class UsuarioValidator {
private ClassValidator usuValidator = new ClassValidator(Usuario.class);
private InvalidValue[] msgValidator;
private boolean ok = false;

public UsuarioValidator(){};

/**
 * Construtor com inicialização da validação de acordo com o objeto
 * @param usu
 */
public UsuarioValidator(Usuario usu) {
	valida(usu);
}

public InvalidValue[] valida(Usuario usu) {
	msgValidator = usuValidator.getInvalidValues(usu);
	ok = msgValidator.length == 0 ? true : false;
	return msgValidator;
}

public InvalidValue[] getMsgValidator() {
	return msgValidator;
}

public boolean getOk() {
	return ok;
}

}[/code]
E estou chamando assim de uma classe de teste:

[code]package br.com.principal;

import br.com.model.Usuario;
import br.com.model.validacao.UsuarioValidator;
import org.hibernate.validator.InvalidValue;

public class Teste {

public static void main(String[] args) {
	Usuario usu = new Usuario();
	UsuarioValidator usuValid = new UsuarioValidator();
	InvalidValue[] msgValid;
	
	usu.setCodigo(5);
	usu.setNome("");
	usu.setEmail("");
	usu.setLogin("");
	usu.setSenha("teste");
	usu.setQtdEmail(1);
	
	msgValid = usuValid.valida(usu);
	System.out.println("Status da validação: " + usuValid.getOk());
	//interagir em cada mensagem que estão contidas no array retornado pelo validador
	if (usuValid.getOk() == false) {
		for (InvalidValue inv : msgValid) {
			System.out.println(inv.getMessage() + ", Propriedade: " + inv.getPropertyName() + ", Valor: " + inv.getValue());
		}
	}
}

}[/code]
Já tem uma classe UsuarioDAO, que tem alguns métodos para utilizar o save(), e tem uns de pesquisa tipo: findById().
Alguem pode dar uma idéia de como fazer algo do tipo: ver se já existe um registro no banco com o campo login?
Assim:

[code] usu.setCodigo(0);
usu.setNome(“Henrique”);
usu.setEmail(“teste”);
usu.setLogin(“henrique”);
usu.setSenha(“teste”);
usu.setQtdEmail(1);

	msgValid = usuValid.valida(usu);[/code]

Aí se já tiver login retornar a mensagem de erro.
Nem sei o que pesquisar na net… ehehe
vlw