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?