Não entendo porque o Hibernate não atualiza os objetos de forma adequada quando existe relacionamento entre classes… Vejam o exemplo:
Tenho 2 classes relacionadas com a seguinte associação:
@JoinColumn(name = “ALUNO_TURMA”, referencedColumnName = “TURMA_ID”)
@ManyToOne(optional = false)
private Turma turma;
@OneToMany(cascade = CascadeType.ALL, mappedBy = “turma”)
private List alunoList;
Ou seja, relacionamento 1-N entre Turma e Aluno.
Estou instanciando o objeto Aluno(aluno1), o objeto Turma(turma1) e definindo o objeto turma em aluno, assim:
aluno1.setTurma(turma1).
e depois persisto os 2 objetos com o metodo session.save.
Não entendo agora, como o poderoso hibernate, não atualiza os 2 objetos de forma a garantir a associação. O objeto aluno fica corretamente com a turma associada, quando eu dou um getTurma ele aparece a turma, mas o
problema está do outro lado. O objeto Turma deveria fazer constar em sua lista de alunos “alunoList”, o objeto aluno recem associado. Mas a lista fica VAZIA!!!
Só quando eu comitto a transação e depois dou um Session.refresh nos objetos, é que ele vai atualizar os objetos em ambos os lados! Só que eu preciso dessa lista “alunoList” atualizada, antes de comittar a operação, pois ainda existem outros operações a realizar antes do commit. O que Fazer? Porque nesse caso, o nosso Hibernate foge de seus principios de OO, não implementando a associação???