HibernateException: cannot simultaneously fetch [RESOLVIDO]

Estou criando todos meus relacionamentos como manda a documentação… todas a Entidades que possuem relacionamento OneToMany estao nesse padrão:

   @OneToMany(mappedBy = "funcionarioFisica", targetEntity = Funcionario.class, fetch = FetchType.EAGER)
    @IndexColumn(name = "FUNC_INDEX")
    @Fetch(FetchMode.JOIN)
    @Cascade(CascadeType.ALL)
    private Collection<Funcionario> funcionario = new ArrayList<Funcionario>();

porem esta dando este erro

Initial SessionFactory creation failed.org.hibernate.HibernateException: cannot simultaneously fetch multiple bags

Se usa Set, ao invez de Collection ou List , funciona, mas preciso dessa forma… nao acho o erro.

verifique se a classe Funcionário tem alguma lista tambem, com FetchType Eager
se tiver, deixe como lazy, e se for o caso, use o Hibernate.intialize para carregar ela

já coloquei Lazy em todos os relacionamentos do projeto, até mesmo no exemplo citado acima
dá o mesmo erro

Oi Ricardo

O zorba tem razao. Nao é erro, o hibernate nao vai levantar duas bags de uma mesma entidade de maneira eager. transforme um de seus relacionamentos X-to-Many para Lazy!

Tem certeza que todos estao lazy? Algo esta errado. Poste o codigo da entidade inteiro pra gente.

abracos

aqui tem 3 classes que se relacionan …

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

package Model;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.IndexColumn;

/**
 *
 * @author yukito
 */

@Entity
@Table (name = "COMARCA")
public class Comarca implements Serializable {
    @Id
    @SequenceGenerator (name = "Comarca_seq" , sequenceName= "comarca_seq", initialValue=1, allocationSize=1)
    @GeneratedValue (strategy=GenerationType.SEQUENCE,  generator="Comarca_seq")
    @Column (name = "COMARCA_ID")
    private int comarcaId;

    @Column (name= "NOME", nullable=false , length=50)
    private String nome;

    @OneToMany (mappedBy="comarca",fetch=FetchType.LAZY)
    @IndexColumn (name= "CIDADE_INDEX")
    @Fetch (FetchMode.SELECT)
    @Cascade (CascadeType.SAVE_UPDATE)
    private Collection<Cidade> cidade ;

    @OneToMany (mappedBy="comarca",fetch=FetchType.LAZY)
    @IndexColumn (name= "VARA_INDEX")
    @Fetch(FetchMode.SELECT)
    @Cascade (CascadeType.SAVE_UPDATE)
    private Collection<Vara> vara ;

    public Collection<Cidade> getCidade() {
        return cidade;
    }

    public void setCidade(Collection<Cidade> cidade) {
        this.cidade = cidade;
    }

    public int getComarcaId() {
        return comarcaId;
    }

    public void setComarcaId(int comarcaId) {
        this.comarcaId = comarcaId;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public Collection<Vara> getVara() {
        return vara;
    }

    public void setVara(Collection<Vara> vara) {
        this.vara = vara;
    }


    @Override
public String toString(){
    return nome;
}
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Comarca other = (Comarca) obj;
        if (this.comarcaId != other.comarcaId) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 97 * hash + this.comarcaId;
        return hash;
    }

 
   
}

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

package Model;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.ForeignKey;


/**
 *
 * @author yukito
 */
@Entity
@Table (name ="Cidade")

public class Cidade implements Serializable {


    @Id
    @SequenceGenerator (name = "Cidade_seq", sequenceName="cidade_seq", initialValue=1,allocationSize=1)
    @GeneratedValue (strategy = GenerationType.SEQUENCE, generator="Cidade_seq")
    @Column(name = "CIDADE_ID", nullable= false)
    private int cidadeId;


    @Column(name = "NOME_CIDADE",nullable=false, length=70)
    private String nomeCidade;


    @Column(name = "SIGLA_ESTADO",nullable=false, length=2  )
    private String siglaEstado;


    @Column(name = "NOME_ESTADO", nullable=false, length=50)
    private String nomeEstado;


    @OneToMany(mappedBy = "cidade", fetch=FetchType.LAZY , targetEntity=Pessoa.class)
    @Fetch(FetchMode.SELECT)
    @Cascade(CascadeType.SAVE_UPDATE)  
    private Set<Pessoa> pessoa = new HashSet<Pessoa>();

   @ManyToOne (fetch=FetchType.LAZY)
   @Fetch(FetchMode.JOIN)
   @JoinColumn (name = "CIDADE_COMARCA", nullable=true)
   @ForeignKey (name= "CIDADE_COMARCA_FK")
   private Comarca comarca;

    public int getCidadeId() {
        return cidadeId;
    }

    public void setCidadeId(int cidadeId) {
        this.cidadeId = cidadeId;
    }

    public Comarca getComarca() {
        return comarca;
    }

    public void setComarca(Comarca comarca) {
        this.comarca = comarca;
    }

    public String getNomeCidade() {
        return nomeCidade;
    }

    public void setNomeCidade(String nomeCidade) {
        this.nomeCidade = nomeCidade;
    }

    public String getNomeEstado() {
        return nomeEstado;
    }

    public void setNomeEstado(String nomeEstado) {
        this.nomeEstado = nomeEstado;
    }

    public Set<Pessoa> getPessoa() {
        return pessoa;
    }

    public void setPessoa(Set<Pessoa> pessoa) {
        this.pessoa = pessoa;
    }



    public String getSiglaEstado() {
        return siglaEstado;
    }

    public void setSiglaEstado(String siglaEstado) {
        this.siglaEstado = siglaEstado;
    }


    @Override
    public String toString(){
        return nomeCidade;
    }


    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Cidade other = (Cidade) obj;
        if (this.cidadeId != other.cidadeId) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 83 * hash + this.cidadeId;
        return hash;
    }




   
  
}

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

package Model;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.ForeignKey;

/**
 *
 * @author yukito
 */

@Entity
@Table (name ="VARA")
public class Vara implements Serializable {
    @Id
    @SequenceGenerator (name = "Vara_seq", sequenceName= "vara_seq",initialValue=1 ,allocationSize=1)
    @GeneratedValue (strategy=GenerationType.SEQUENCE, generator="Vara_seq")
    @Column (name = "VARA_ID", nullable= false)
    private int varaId;

    @Column (name = "NUMERO", nullable=false)
    private String numero;

    @Column (name= "JUSTICA", nullable=false)
    private String justica;

    @Column (name = "TEL_VARA", length=13)
    private String TelVara;

    @Column (name = "NOME_JUIZ", length= 60)
    private String nomeJuiz;

    @Column (name = "TEL_GAB_JUIZ", length=13)
    private String telJuiz;

    @Column (name = "NOME_PROMOTOR", length=60)
    private String nomePromotor;

    @Column (name = "TEL_GAB_PROMOTOR", length=13)
    private  String telPromotor;

    @ManyToOne (fetch=FetchType.LAZY)
    @Fetch(FetchMode.JOIN)
    @JoinColumn (name = "VARA_COMARCA")
    @ForeignKey  (name = "VARA_COMARCA_FK")
    private Comarca comarca;

    @OneToMany (mappedBy="vara" ,fetch=FetchType.LAZY)
    @Fetch (FetchMode.SELECT)
    @Cascade (CascadeType.ALL)
    private Set<Processo> processo =  new HashSet<Processo>();


    @OneToMany (mappedBy="vara" ,fetch=FetchType.LAZY)
    @Fetch(FetchMode.SELECT)
    @Cascade (CascadeType.ALL)
    private Set<Andamento> andamento= new HashSet<Andamento>();

    public Set<Andamento> getAndamento() {
        return andamento;
    }

    public void setAndamento(Set<Andamento> andamento) {
        this.andamento = andamento;
    }

    public Set<Processo> getProcesso() {
        return processo;
    }

    public void setProcesso(Set<Processo> processo) {
        this.processo = processo;
    }



    public Comarca getComarca() {
        return comarca;
    }

    public void setComarca(Comarca comarca) {
        this.comarca = comarca;
    }

    public String getJustica() {
        return justica;
    }

    public void setJustica(String justica) {
        this.justica = justica;
    }

    public String getNomeJuiz() {
        return nomeJuiz;
    }

    public void setNomeJuiz(String nomeJuiz) {
        this.nomeJuiz = nomeJuiz;
    }

    public String getNomePromotor() {
        return nomePromotor;
    }

    public void setNomePromotor(String nomePromotor) {
        this.nomePromotor = nomePromotor;
    }

    public String getNumero() {
        return numero;
    }

    public void setNumero(String numero) {
        this.numero = numero;
    }



    public String getTelJuiz() {
        return telJuiz;
    }

    public void setTelJuiz(String telJuiz) {
        this.telJuiz = telJuiz;
    }

    public String getTelPromotor() {
        return telPromotor;
    }

    public void setTelPromotor(String telPromotor) {
        this.telPromotor = telPromotor;
    }

    public int getVaraId() {
        return varaId;
    }

    public void setVaraId(int varaId) {
        this.varaId = varaId;
    }

    public String getTelVara() {
        return TelVara;
    }

    public void setTelVara(String TelVara) {
        this.TelVara = TelVara;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Vara other = (Vara) obj;
        if (this.varaId != other.varaId) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 79 * hash + this.varaId;
        return hash;
    }







}

Algumas estao como set pois estava testando , é usar alguns collections já apare o erro.

ola Ricardo

Em nenhuma dessas classes tem a Collection que voce disse. Onde esta?

E poste o erro inteiro que ele deve dizer qual classe que esta com as duas bags.

eu havia postado o relacionamento de funcionario como exemplo , na verdade qualque persistencia ou query a SessionFactory nao inicia :
o erro é o mesmo para qualquer entidade, os mapeamento em todas estao como nos exemplos acima.

Esse deu ao gravar uma Comarca no sistema, que esta no codigo acima;

run:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Initial SessionFactory creation failed.org.hibernate.HibernateException: cannot simultaneously fetch multiple bags

ligue o debug do logger do Hibernate que ele vai dizer com precisao qual é a classe que esta com duas bags

Ok Paulo, sou meio iniciante com hibernate , vou procurar como ‘ligo’ !
bom saber que existe isso,
obrigado!

coloque assim dentro do log4j.properties dentro do seu src: (ou faca o equivalente em relacao ao hibernate.cfg.xml)

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

log4j.rootLogger=warn, stdout
log4j.logger.org.hibernate=debug

fiz isso, deu um log de 1600 linha …

19:18:11,494 DEBUG EntityLoader:79 - Static select for entity Model.Andamento: select andamento0_.ANDAMENTO_ID as ANDAMENTO1_15_0_, andamento0_.ASSUNTO as ASSUNTO15_0_, andamento0_.ANDAMENTO_COMPROMISSO as ANDAMENTO6_15_0_, andamento0_.DATA_FINAL as DATA3_15_0_, andamento0_.DATA_INICIAL as DATA4_15_0_, andamento0_.DATA_PUBLICACAO as DATA5_15_0_, andamento0_.ANDAMENTO_PROCESSO as ANDAMENTO7_15_0_, andamento0_.ANDAMENTO_SEGUNDA_INST as ANDAMENTO8_15_0_, andamento0_.ANDAMENTO_VARA as ANDAMENTO9_15_0_ from ANDAMENTO andamento0_ where andamento0_.ANDAMENTO_ID=? for update nowait 19:18:11,499 DEBUG EntityLoader:34 - Static select for action ACTION_MERGE on entity Model.Andamento: select andamento0_.ANDAMENTO_ID as ANDAMENTO1_15_1_, andamento0_.ASSUNTO as ASSUNTO15_1_, andamento0_.ANDAMENTO_COMPROMISSO as ANDAMENTO6_15_1_, andamento0_.DATA_FINAL as DATA3_15_1_, andamento0_.DATA_INICIAL as DATA4_15_1_, andamento0_.DATA_PUBLICACAO as DATA5_15_1_, andamento0_.ANDAMENTO_PROCESSO as ANDAMENTO7_15_1_, andamento0_.ANDAMENTO_SEGUNDA_INST as ANDAMENTO8_15_1_, andamento0_.ANDAMENTO_VARA as ANDAMENTO9_15_1_, prazoproce1_.PRAZO_ANDAMENTO as PRAZO5_3_, prazoproce1_.PRAZO_ID as PRAZO1_3_, prazoproce1_.PRAZO_ID as PRAZO1_17_0_, prazoproce1_.PRAZO_ANDAMENTO as PRAZO5_17_0_, prazoproce1_.DATA_PRAZO as DATA2_17_0_, prazoproce1_.DESCRICAO as DESCRICAO17_0_, prazoproce1_.HORA_PRAZO as HORA4_17_0_ from ANDAMENTO andamento0_, PRAZO_PROCESO prazoproce1_ where andamento0_.ANDAMENTO_ID=prazoproce1_.PRAZO_ANDAMENTO(+) and andamento0_.ANDAMENTO_ID=? Initial SessionFactory creation failed.org.hibernate.HibernateException: cannot simultaneously fetch multiple bags //**** 19:18:11,500 DEBUG EntityLoader:34 - Static select for action ACTION_REFRESH on entity Model.Andamento: select andamento0_.ANDAMENTO_ID as ANDAMENTO1_15_1_, andamento0_.ASSUNTO as ASSUNTO15_1_, andamento0_.ANDAMENTO_COMPROMISSO as ANDAMENTO6_15_1_, andamento0_.DATA_FINAL as DATA3_15_1_, andamento0_.DATA_INICIAL as DATA4_15_1_, andamento0_.DATA_PUBLICACAO as DATA5_15_1_, andamento0_.ANDAMENTO_PROCESSO as ANDAMENTO7_15_1_, andamento0_.ANDAMENTO_SEGUNDA_INST as ANDAMENTO8_15_1_, andamento0_.ANDAMENTO_VARA as ANDAMENTO9_15_1_, prazoproce1_.PRAZO_ANDAMENTO as PRAZO5_3_, prazoproce1_.PRAZO_ID as PRAZO1_3_, prazoproce1_.PRAZO_ID as PRAZO1_17_0_, prazoproce1_.PRAZO_ANDAMENTO as PRAZO5_17_0_, prazoproce1_.DATA_PRAZO as DATA2_17_0_, prazoproce1_.DESCRICAO as DESCRICAO17_0_, prazoproce1_.HORA_PRAZO as HORA4_17_0_ from ANDAMENTO andamento0_, PRAZO_PROCESO prazoproce1_ where andamento0_.ANDAMENTO_ID=prazoproce1_.PRAZO_ANDAMENTO(+) and andamento0_.ANDAMENTO_ID=? CONSTRUÍDO COM SUCESSO (tempo total: 17 segundos)

as ultimas foram essas, olhando nao consegui achar nada de anormal :S

mostre o que aparece no log logo antes do Initial SessionFactory creation failed.org.hibernate.HibernateException: cannot simultaneously fetch multiple bags

19:18:11,494 DEBUG EntityLoader:79 - Static select for entity Model.Andamento: select andamento0_.ANDAMENTO_ID as ANDAMENTO1_15_0_, andamento0_.ASSUNTO as ASSUNTO15_0_, andamento0_.ANDAMENTO_COMPROMISSO as ANDAMENTO6_15_0_, andamento0_.DATA_FINAL as DATA3_15_0_, andamento0_.DATA_INICIAL as DATA4_15_0_, andamento0_.DATA_PUBLICACAO as DATA5_15_0_, andamento0_.ANDAMENTO_PROCESSO as ANDAMENTO7_15_0_, andamento0_.ANDAMENTO_SEGUNDA_INST as ANDAMENTO8_15_0_, andamento0_.ANDAMENTO_VARA as ANDAMENTO9_15_0_ from ANDAMENTO andamento0_ where andamento0_.ANDAMENTO_ID=? for update nowait 19:18:11,499 DEBUG EntityLoader:34 - Static select for action ACTION_MERGE on entity Model.Andamento: select andamento0_.ANDAMENTO_ID as ANDAMENTO1_15_1_, andamento0_.ASSUNTO as ASSUNTO15_1_, andamento0_.ANDAMENTO_COMPROMISSO as ANDAMENTO6_15_1_, andamento0_.DATA_FINAL as DATA3_15_1_, andamento0_.DATA_INICIAL as DATA4_15_1_, andamento0_.DATA_PUBLICACAO as DATA5_15_1_, andamento0_.ANDAMENTO_PROCESSO as ANDAMENTO7_15_1_, andamento0_.ANDAMENTO_SEGUNDA_INST as ANDAMENTO8_15_1_, andamento0_.ANDAMENTO_VARA as ANDAMENTO9_15_1_, prazoproce1_.PRAZO_ANDAMENTO as PRAZO5_3_, prazoproce1_.PRAZO_ID as PRAZO1_3_, prazoproce1_.PRAZO_ID as PRAZO1_17_0_, prazoproce1_.PRAZO_ANDAMENTO as PRAZO5_17_0_, prazoproce1_.DATA_PRAZO as DATA2_17_0_, prazoproce1_.DESCRICAO as DESCRICAO17_0_, prazoproce1_.HORA_PRAZO as HORA4_17_0_ from ANDAMENTO andamento0_, PRAZO_PROCESO prazoproce1_ where andamento0_.ANDAMENTO_ID=prazoproce1_.PRAZO_ANDAMENTO(+) and andamento0_.ANDAMENTO_ID=? //*********Initial SessionFactory creation failed.org.hibernate.HibernateException: cannot simultaneously fetch multiple bags //**** 19:18:11,500 DEBUG EntityLoader:34 - Static select for action ACTION_REFRESH on entity Model.Andamento: select andamento0_.ANDAMENTO_ID as ANDAMENTO1_15_1_, andamento0_.ASSUNTO as ASSUNTO15_1_, andamento0_.ANDAMENTO_COMPROMISSO as ANDAMENTO6_15_1_, andamento0_.DATA_FINAL as DATA3_15_1_, andamento0_.DATA_INICIAL as DATA4_15_1_, andamento0_.DATA_PUBLICACAO as DATA5_15_1_, andamento0_.ANDAMENTO_PROCESSO as ANDAMENTO7_15_1_, andamento0_.ANDAMENTO_SEGUNDA_INST as ANDAMENTO8_15_1_, andamento0_.ANDAMENTO_VARA as ANDAMENTO9_15_1_, prazoproce1_.PRAZO_ANDAMENTO as PRAZO5_3_, prazoproce1_.PRAZO_ID as PRAZO1_3_, prazoproce1_.PRAZO_ID as PRAZO1_17_0_, prazoproce1_.PRAZO_ANDAMENTO as PRAZO5_17_0_, prazoproce1_.DATA_PRAZO as DATA2_17_0_, prazoproce1_.DESCRICAO as DESCRICAO17_0_, prazoproce1_.HORA_PRAZO as HORA4_17_0_ from ANDAMENTO andamento0_, PRAZO_PROCESO prazoproce1_ where andamento0_.ANDAMENTO_ID=prazoproce1_.PRAZO_ANDAMENTO(+) and andamento0_.ANDAMENTO_ID=? CONSTRUÍDO COM SUCESSO (tempo total: 17 segundos)

tudo indica que o problema esta na classe Andamento. pode posta-la?

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.ForeignKey;
import org.hibernate.annotations.IndexColumn;

/**
 *
 * @author yukito
 */

@Entity
@Table (name = "ANDAMENTO")
public class Andamento implements Serializable{
    @Id
    @SequenceGenerator (name= "Andamento-seq", sequenceName="andamento_seq",initialValue=1 , allocationSize=1)
    @GeneratedValue (strategy=GenerationType.SEQUENCE, generator="Andamento-seq")
    @Column (name = "ANDAMENTO_ID" , nullable= false)
    private int andamentoId;

    @Column (name = "DATA_PUBLICACAO")
    @Temporal(TemporalType.TIMESTAMP)
    private Date datapublicacao;

    @Column (name = "DATA_INICIAL")
    @Temporal(TemporalType.DATE)
    private Date dataInicinal;

    @Column (name = "DATA_FINAL")
    @Temporal(TemporalType.DATE)
    private Date dataFinal;

    @Column (name = "ASSUNTO", nullable= false , length=60)
    private String assunto;

    @ManyToOne (fetch=FetchType.LAZY)
    @Fetch(FetchMode.SELECT)
    @JoinColumn (name = "ANDAMENTO_VARA")
    @ForeignKey (name = "ANDAMENTO_VARA_FK")
    private Vara vara;

    @ManyToOne (fetch=FetchType.LAZY)
    @JoinColumn (name = "ANDAMENTO_PROCESSO")
    @ForeignKey (name = "ANDAMENTO_PROCESSO_FK")
    private Processo processo;

    @ManyToOne (fetch=FetchType.LAZY)
    @Fetch(FetchMode.SELECT)
    @JoinColumn (name = "ANDAMENTO_SEGUNDA_INST")
    @ForeignKey (name = "ANDAMENTO_SEGUNDA_INST_FK")
    private SegundaInstancia segundaInstancia;

    @OneToMany (mappedBy="andamento", fetch=FetchType.LAZY)
    @IndexColumn (name ="PRAZO_INDEX")
    @Fetch(FetchMode.SELECT)
    @Cascade( CascadeType.ALL)
    private Collection<PrazoProcesso> prazoProcesso = new ArrayList<PrazoProcesso>();

    @ManyToOne ( fetch=FetchType.LAZY)
    @Fetch (FetchMode.JOIN)
    @JoinColumn (name="ANDAMENTO_COMPROMISSO")
    @ForeignKey (name="COMPROMISSO_ANDAMENTO_FK")
    @Cascade(CascadeType.SAVE_UPDATE)
    private Compromisso compromisso;

olhei em todas que estao relacionadas diretamente com Andamento, esta tudo Lazy

tire todos esses @FetchMode, alguns deles vao forcar que seja eager.

Era exatamente isso , nao sabia desse detalhe…

muito obrigado pela ajuda!