[RESOLVIDO]Hibernate não está fazendo update

0 respostas
Janerson

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?

[img]http://uploaddeimagens.com.br/images/000/169/261/original/sisge_relaçao.png[/img]

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
@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);

    }

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
        (?, ?)
Criado 28 de janeiro de 2014
Respostas 0
Participantes 1