Duvida com saveOrUpdate no hibernate

Pessoal,
tenho um exemplo de mapeamento:

class Escola {
@OneToMany
List professores;
}

class Professor {
@OneToMany
List alunos;

@ManyToOne
Escola escola;
}

class Aluno {
@ManyToOne
Professor professor;
}

Digamos que as 3 classes possuem id e name como unique. Atualmente eu estou persistindo assim:

escola (nome: escola1, alunos: {joao, maria})

Session session = sessionFactory.openSession();
session.beginTransaction();
session.saveOrUpdate(escola);
session.getTransaction().commit();

Agora digamos que uma vez que os dados estejam persistidos, eu tenha outro objeto escola contendo os mesmos dados do que esta persistido (exceto o id) e um aluno a mais na lista:

escola (nome: escola1, alunos: {joao, maria, jose})

Eu queria que ao executar o session.saveOrUpdate(escola), ele reconhecesse que escola1 ja esta cadastrada e entao fizesse um update adicionando o aluno jose. Mas so executando o saveOrUpdate da erro de constraint devido a coluna nome ser unique=true.

Alguma ideia?