HIbernate e Indices Exclusivos

Nao sei como veriricar as demais chaves antes de salvar, quando chamo o metodo save() do hibernate, dah um erro de duplicate entry…

Eis a minha configuraçao:

create table bairro(
    id_bairro int not null primary key auto_increment,
    nome varchar(50) not null,

    unique idx_nome(nome)
)type=InnoDB;

Ou seja, alem do indice, nao pode haver nenhum bairro com nome repetido.

Agora, usando o hibernate:

	public boolean save(Bairro b) {
		Session sessao = db.getSession();
		Transaction trans = sessao.beginTransaction();
		sessao.beginTransaction();
		sessao.save(b);
		trans.commit();
		sessao.close();
		return false;
	}

Agora, o erro ocorre quando:

		Bairro b = new Bairro();
		b.setId(1);
		b.setNome("Kemper");
		try {
			bm.save(b);
		}catch (Exception ee){
			ee.printStackTrace();
		}

Ocorre que se jah houver um bairro com este nome ‘Kemper’, porem com uma id diferente, da o seguinte erro:

13/08/2007 10:42:00 org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: 1062, SQLState: 23000
13/08/2007 10:42:00 org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: Duplicate entry 'Kemper' for key 2
org.hibernate.exception.ConstraintViolationException: could not insert: [sisGPMembers.Bairro]
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
        (...)