Boa noite turma !!!
To com uma dúvida em relação ao código sql gerado pelo hibernate
Tenho uma relação entre Turma x Aluno um para muitos, até aqui blz
esta salvando tranquilo, só estou achando estranho o sql formado pelo hibernate, onde ele está
deletando os registros inseridos para depois inseri-los novamente, o correto não seria
atualizar inserindo os novos dados que nao estavam associado antes?
Minha anotação
@OneToMany
@JoinTable(
name = "turma_aluno",
joinColumns = {
@JoinColumn(name = "idTurma", referencedColumnName = "idTurma")
},
inverseJoinColumns = {
@JoinColumn(name = "matricula", referencedColumnName = "matricula", unique = true)}
)
public Set<Aluno> getAlunos() {
return this.alunos;
}
Método para salvar
[code]
@FXML
private void salvarTurma(ActionEvent actionEvent) {
Set<Aluno> setAluno = new HashSet<Aluno>();
tblListaAluno.getItems().forEach(a -> {
setAluno.add(a);
});
TurmaDAO tDAO = new TurmaDAO();
Turma t = tbListaTurma.selectionModelProperty().getValue().getSelectedItem();
t.setAlunos(setAluno);
tDAO.salvar(t);
}[/code]
Código SQL gerado pelo Hibernate
Hibernate:
update
sisge.turma
set
ano=?,
grau=?,
maxAlunos=?,
serie=?,
turma=?,
idTurno=?
where
idTurma=?
Hibernate: // aqui onde eu acho estranho o Hibernate está deletando os dados já inseridos
delete // para depois inseri-los novamente, o correto não seria ele atualizar essa relaçao?, estou usando o método saveOrUpdate
from // do hibernate
turma_aluno
where
idTurma=?
Hibernate:
insert
into
turma_aluno
(idTurma, matricula)
values
(?, ?)
Hibernate:
insert
into
turma_aluno
(idTurma, matricula)
values
(?, ?)
Hibernate:
insert
into
turma_aluno
(idTurma, matricula)
values
(?, ?)
