Hibernate, desabilitar selects

Tenho uma aplicação que apenas insere dados em um banco de dados via hibernate. Só que quando eu dou o save na sessão, ele faz um monte de select, acho que pra ver se existem aqueles dados na tabela, existe como desabilitar esses selects ??

Alguém ?? Isso está detonando meu desempenho, pq se eu tenho 5 mil inserts (o que é perfeitamente aceitável em minha regra de negócios) ele faz 5 mil selects antes… Como desabilito essas buscas ??

Tem como postar o mapeamento desta classe?

[]'s
JL

Tem como postar o mapeamento desta classe?

[]'s
JL[/quote]

Opa tem sim

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.daikensoftware.apserver.entidades;

import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.Proxy;

/**
 *
 * @author filipe
 */
@Entity
@Table(name = "C004_CONTROLE_EVENTO")
//@NamedQueries({@NamedQuery(name = "TControleEvento.findAll", query = "SELECT c FROM TControleEvento c"), @NamedQuery(name = "TControleEvento.findByC002CodigoViagem", query = "SELECT c FROM TControleEvento c WHERE c.c004ControleEventoPK.c002CodigoViagem = :c002CodigoViagem"), @NamedQuery(name = "TControleEvento.findByC004CodigoEvento", query = "SELECT c FROM TControleEvento c WHERE c.c004ControleEventoPK.c004CodigoEvento = :c004CodigoEvento")})
@Proxy(lazy=true)
public class TControleEvento implements Serializable {
    private static final long serialVersionUID = 1L;
    
    @EmbeddedId
    protected TControleEventoPK c004ControleEventoPK;
    @JoinColumn(name = "C002_CODIGO_VIAGEM", referencedColumnName = "C002_CODIGO_VIAGEM", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private TViagem c002Viagem;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TGps e302Gps;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TDadosGerais e301DadosGerais;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TPontosAceleracao e306PontosAceleracao;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TCancelamentoCercaEletro e303CancelamentoCercaEletro;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TMecanica e313Mecanica;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TInformacoesTrem e311InformacoesTrem;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TLiberacaoFreio e310LiberacaoFreio;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TConsumoViagem e315ConsumoViagem;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TLimiteViagem e314LimiteViagem;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TTransicaoSb e305TransicaoSb;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TChecagemEquipamentos e316ChecagemEquipamentos;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TConferenciaCauda e308ConferenciaCauda;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TJustificativaAtraso e312JustificativaAtraso;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TConsumoSb e317ConsumoSb;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TRegistroUrca e307RegistroUrca;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TAtuacaoFreio e304AtuacaoFreio;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "c004ControleEvento", fetch=FetchType.LAZY)
    private TInformacoesLocomotivas e309InformacoesLocomotivas;

    public TControleEvento() {
    }

    public TControleEvento(TControleEventoPK c004ControleEventoPK) {
        this.c004ControleEventoPK = c004ControleEventoPK;
    }

    public TControleEvento(int c002CodigoViagem, int c004CodigoEvento) {
        //this.c004ControleEventoPK = new TControleEventoPK(c002CodigoViagem, c004CodigoEvento);
    }

    
    public TControleEventoPK getC004ControleEventoPK() {
        return c004ControleEventoPK;
    }

    public void setC004ControleEventoPK(TControleEventoPK c004ControleEventoPK) {
        this.c004ControleEventoPK = c004ControleEventoPK;
    }

    public TViagem getC002Viagem() {
        return c002Viagem;
    }

    public void setC002Viagem(TViagem c002Viagem) {
        this.c002Viagem = c002Viagem;
    }

    public TGps getE302Gps() {
        return e302Gps;
    }

    public void setE302Gps(TGps e302Gps) {
        this.e302Gps = e302Gps;
    }

    public TDadosGerais getE301DadosGerais() {
        return e301DadosGerais;
    }

    public void setE301DadosGerais(TDadosGerais e301DadosGerais) {
        TDadosGeraisPK  dadosGeraisPK= new TDadosGeraisPK(c004ControleEventoPK);
        this.e301DadosGerais = e301DadosGerais;
        this.e301DadosGerais.setE301DadosGeraisPK(dadosGeraisPK);
    }

    public TPontosAceleracao getE306PontosAceleracao() {
        return e306PontosAceleracao;
    }

    public void setE306PontosAceleracao(TPontosAceleracao e306PontosAceleracao) {
        this.e306PontosAceleracao = e306PontosAceleracao;
    }

    public TCancelamentoCercaEletro getE303CancelamentoCercaEletro() {
        return e303CancelamentoCercaEletro;
    }

    public void setE303CancelamentoCercaEletro(TCancelamentoCercaEletro e303CancelamentoCercaEletro) {
        this.e303CancelamentoCercaEletro = e303CancelamentoCercaEletro;
    }

    public TMecanica getE313Mecanica() {
        return e313Mecanica;
    }

    public void setE313Mecanica(TMecanica e313Mecanica) {
        this.e313Mecanica = e313Mecanica;
    }

    public TInformacoesTrem getE311InformacoesTrem() {
        return e311InformacoesTrem;
    }

    public void setE311InformacoesTrem(TInformacoesTrem e311InformacoesTrem) {
        this.e311InformacoesTrem = e311InformacoesTrem;
    }

    public TLiberacaoFreio getE310LiberacaoFreio() {
        return e310LiberacaoFreio;
    }

    public void setE310LiberacaoFreio(TLiberacaoFreio e310LiberacaoFreio) {
        this.e310LiberacaoFreio = e310LiberacaoFreio;
    }

    public TConsumoViagem getE315ConsumoViagem() {
        return e315ConsumoViagem;
    }

    public void setE315ConsumoViagem(TConsumoViagem e315ConsumoViagem) {
        this.e315ConsumoViagem = e315ConsumoViagem;
    }

    public TLimiteViagem getE314LimiteViagem() {
        return e314LimiteViagem;
    }

    public void setE314LimiteViagem(TLimiteViagem e314LimiteViagem) {
        TLimiteViagemPK limitePK = new TLimiteViagemPK(this.getC004ControleEventoPK());
        this.e314LimiteViagem = e314LimiteViagem;
        this.e314LimiteViagem.setE314LimiteViagemPK(limitePK);
    }

    public TTransicaoSb getE305TransicaoSb() {
        return e305TransicaoSb;
    }

    public void setE305TransicaoSb(TTransicaoSb e305TransicaoSb) {
        this.e305TransicaoSb = e305TransicaoSb;
    }

    public TChecagemEquipamentos getE316ChecagemEquipamentos() {
        return e316ChecagemEquipamentos;
    }

    public void setE316ChecagemEquipamentos(TChecagemEquipamentos e316ChecagemEquipamentos) {
        this.e316ChecagemEquipamentos = e316ChecagemEquipamentos;
    }

    public TConferenciaCauda getE308ConferenciaCauda() {
        return e308ConferenciaCauda;
    }

    public void setE308ConferenciaCauda(TConferenciaCauda e308ConferenciaCauda) {
        this.e308ConferenciaCauda = e308ConferenciaCauda;
    }

    public TJustificativaAtraso getE312JustificativaAtraso() {
        return e312JustificativaAtraso;
    }

    public void setE312JustificativaAtraso(TJustificativaAtraso e312JustificativaAtraso) {
        this.e312JustificativaAtraso = e312JustificativaAtraso;
    }

    public TConsumoSb getE317ConsumoSb() {
        return e317ConsumoSb;
    }

    public void setE317ConsumoSb(TConsumoSb e317ConsumoSb) {
        this.e317ConsumoSb = e317ConsumoSb;
    }

    public TRegistroUrca getE307RegistroUrca() {
        return e307RegistroUrca;
    }

    public void setE307RegistroUrca(TRegistroUrca e307RegistroUrca) {
        this.e307RegistroUrca = e307RegistroUrca;
    }

    public TAtuacaoFreio getE304AtuacaoFreio() {
        return e304AtuacaoFreio;
    }

    public void setE304AtuacaoFreio(TAtuacaoFreio e304AtuacaoFreio) {
        this.e304AtuacaoFreio = e304AtuacaoFreio;
    }

    public TInformacoesLocomotivas getE309InformacoesLocomotivas() {
        return e309InformacoesLocomotivas;
    }

    public void setE309InformacoesLocomotivas(TInformacoesLocomotivas e309InformacoesLocomotivas) {
        this.e309InformacoesLocomotivas = e309InformacoesLocomotivas;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (c004ControleEventoPK != null ? c004ControleEventoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof TControleEvento)) {
            return false;
        }
        TControleEvento other = (TControleEvento) object;
        if ((this.c004ControleEventoPK == null && other.c004ControleEventoPK != null) || (this.c004ControleEventoPK != null && !this.c004ControleEventoPK.equals(other.c004ControleEventoPK))) {
            return false;
        }
        return true;
    }
}

Cada vez que eu insiro um controle evento, eu insiro um dos objetos relacionados nos relacionamentos @OneToOne
ai na saída do sql eu tenho
Um select no controle evento
Um select em um dos relacionamentos
para depois dar os inserts

Só pra eu tirar uma dúvida, troca os CascadeType.ALL por CascadeType.NONE
Só pra ver como se comporta.

[quote=Mero_Aprendiz]Só pra eu tirar uma dúvida, troca os CascadeType.ALL por CascadeType.NONE
Só pra ver como se comporta.[/quote]
Mas ai eu vou ter que inserir os relacionamentos no braço ?? Pq eu dou um insert nessa TControleEvento e ela se encarrega de inserir o relacionamento correspondente…
Edit

Nem rolou, ele nem aceita esse tipo de cascade…

??? Heeeeeelp

Consegui resolver, o problema era que eu usava session.save para persistir os objetos, e por definição o save retorna o identificador do objeto. com o session.persist funcionou perfeitamente…