StaleStateException

Pessoal na hora de persistir meu objeto no banco esta gerando essa exception OptimisticLockException, o que e isso como resolver?

cara,

posta o log do erro completo ai.

t+

Esta ai Alisson:

2011-10-29 09:54:25,609 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] Could not synchronize database state with session org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:61) at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:46) at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:24) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2403) at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2307) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2607) at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) at org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:296) at org.jboss.ejb3.entity.TransactionScopedEntityManager.flush(TransactionScopedEntityManager.java:211) at br.gov.cvm.rfe.dominio.daos.GenericDaoBean.atualiza(GenericDaoBean.java:52) at br.gov.cvm.rfe.dominio.daos.GenericDaoBean.atualiza(GenericDaoBean.java:38) at br.gov.cvm.rfe.servicos.ParticipanteMercadoServiceBean.salvaParticipanteMercado(ParticipanteMercadoServiceBean.java:29) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:240) at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:210) at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84) at $Proxy125.salvaParticipanteMercado(Unknown Source) at br.gov.cvm.rfe.web.backingBeans.CarteiraBB.insere(CarteiraBB.java:337) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.el.parser.AstValue.invoke(AstValue.java:131) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91) at javax.faces.component.UICommand.broadcast(UICommand.java:383) at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55) at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321) at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296) at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253) at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) at java.lang.Thread.run(Thread.java:619)

ve te ajuda,

http://www.coderanch.com/t/217234/ORM/java/StaleStateException

t+

Alisson, eu estou usando EJB então nem controlo as transações, so chamo o metodo persist, não estou entendendo pq estava funcionando antes =/

cara,

entao posta seu codigo ai, deixa eu dar uma olhada.

t+

O metodo q faz o insert é esse:

[code] public void insere(){
if(consisteDadosCarteira()){
getCarteira().setIndicePercentualMinimoSubordinacaoCarteira(Float.parseFloat(indiceMinimoDeSubordinacao));
montaPkCarteira();
if(getParticipante().getListCarteira() == null){
getParticipante().setListCarteira(new ArrayList());
}
getParticipante().getListCarteira().add(getCarteira());
anexarDocCarteira();
try{
particMercadoService.salvaParticipanteMercado(particMercado, participante);
addFacesMessage(FacesMessage.SEVERITY_ERROR, “Fundo Fidc incluído com sucesso”);
}catch(Exception e){

		}
	}	
}
[/code]

Agora, qual o motivo desse erro? Isso q nao to conseguindo entender =/

posta as classes completa, e posta a sequencia q vc segue das classes.

t+

Allison o erro ocorre quando meu objeto participante tem mais de um objeto ParticipanteAssociado na sua lista de ParticipanteAssociado

A classe participante:

[code]package br.gov.cvm.rfe.dominio.corporativo.entidades;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**

  • @author everton.gomes *
    */
    @Entity
    @Table(name=“SIC_PARTIC”)
    @NamedQueries({@NamedQuery(name=“findPartic”,query=“select distinct p from Participante p left join fetch p.pessoaFisicaJuridica where p.motivoCanc.cdMotivoCanc = 62”),
    @NamedQuery(name=“findParticipante”,query=“select distinct p from Participante p left join fetch p.pessoaFisicaJuridica where p.pk.nrPfPj = ?1”)})
    public class Participante implements Serializable {

    private static final long serialVersionUID = 1L;

    public static final String QUERY_CONSULTAR_PARTICIPANTE = “findPartic”;

    public static final String QUERY_CONSULTAR_PARTICIPANTE_POR_NRPFPJ = “findParticipante”;

    private ParticipantePk pk;

    private String statusGestorFdoExcv;

    private PessoaFisicaJuridica pessoaFisicaJuridica;

    private List listaPartic;

    private List listaAssocPartic;

    private List listaParticAssoc;

    private MotivoCancelamento motivoCanc;

    private Date dtCancelamento;

    private List listaSituacoes;

    private Date dtConst;

    private Integer cdTpAdmin;

    private List listParticTpFormCondom;

    private List listAbertoFechado;

    private List listInformacoesRegistroFundoFidc;

    private List listInformacoesInstituicaoCustodiante;

    private List listClassificacaoRisco;

    private List listMaterialDivulgacao;

    private List listParticipanteClasseSerie;

    private List listCarteira;

    private List listInformacoesComplementares;

    private List listInformacoesPrestadores;

    private List listaExercicioSocial;

    public void setPessoaFisicaJuridica(PessoaFisicaJuridica pessoaFisicaJuridica) {
    this.pessoaFisicaJuridica = pessoaFisicaJuridica;
    }

    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumns({
    @JoinColumn(name=“CD_TP_PF_PJ”,referencedColumnName=“CD_TP_PF_PJ”,insertable=false, updatable = false),
    @JoinColumn(name=“NR_PF_PJ”,referencedColumnName=“NR_PF_PJ”,insertable=false, updatable = false)
    })
    public PessoaFisicaJuridica getPessoaFisicaJuridica() {

     if(pessoaFisicaJuridica == null)
     	pessoaFisicaJuridica = new PessoaFisicaJuridica();
     
     return pessoaFisicaJuridica;
    

    }

    public void setStatusGestorFdoExcv(String statusGestorFdoExcv) {
    this.statusGestorFdoExcv = statusGestorFdoExcv;
    }

    @Column(name=“ST_GEST_FDO_EXCV”)
    public String getStatusGestorFdoExcv() {
    return statusGestorFdoExcv;
    }

    public void setPk(ParticipantePk pk) {
    this.pk = pk;
    }

    @EmbeddedId
    public ParticipantePk getPk() {
    if(pk == null)
    pk = new ParticipantePk();
    return pk;
    }

    public void setMotivoCanc(MotivoCancelamento motivoCanc) {
    this.motivoCanc = motivoCanc;
    }

    @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(referencedColumnName=“CD_MOTIVO_CANC”, name=“CD_MOTIVO_CANC”)
    public MotivoCancelamento getMotivoCanc() {
    return motivoCanc;
    }

    public void setDtCancelamento(Date dtCancelamento) {
    this.dtCancelamento = dtCancelamento;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name=“DT_CANC”, columnDefinition=“smalldatetime”)
    public Date getDtCancelamento() {
    return dtCancelamento;
    }

    public void setListaSituacoes(List listaSituacoes) {
    this.listaSituacoes = listaSituacoes;
    }

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = “participante”)
    public List getListaSituacoes() {
    return listaSituacoes;
    }

    public void setListaPartic(List listaPartic) {
    this.listaPartic = listaPartic;
    }

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = “participante”)
    public List getListaPartic() {
    return listaPartic;
    }

    public void setListaParticAssoc(List listaParticAssoc) {
    this.listaParticAssoc = listaParticAssoc;
    }

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = “participanteAssoc”)
    public List getListaParticAssoc() {
    if(listaParticAssoc == null)
    listaParticAssoc = new ArrayList();
    return listaParticAssoc;
    }

    public void setCdTpAdmin(Integer cdTpAdmin) {
    this.cdTpAdmin = cdTpAdmin;
    }

    @Column(name=“CD_TP_ADM”)
    public Integer getCdTpAdmin() {
    return cdTpAdmin;
    }

    public void setListaAssocPartic(List listaAssocPartic) {
    this.listaAssocPartic = listaAssocPartic;
    }

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = “participante”)
    public List getListaAssocPartic() {
    if(listaAssocPartic == null)
    listaAssocPartic = new ArrayList();
    return listaAssocPartic;
    }

    public void setDtConst(Date dtConst) {
    this.dtConst = dtConst;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name=“DT_CONST”)
    public Date getDtConst() {
    return dtConst;
    }

    public void setListParticTpFormCondom(List listParticTpFormCondom) {
    this.listParticTpFormCondom = listParticTpFormCondom;
    }

    @OneToMany(cascade = CascadeType.ALL, mappedBy = “participante”, fetch = FetchType.LAZY)
    public List getListParticTpFormCondom() {
    return listParticTpFormCondom;
    }

    public void setListParticipanteClasseSerie(
    List listParticipanteClasseSerie) {
    this.listParticipanteClasseSerie = listParticipanteClasseSerie;
    }

    @OneToMany(cascade = CascadeType.ALL, mappedBy = “participante”, fetch = FetchType.LAZY)
    public List getListParticipanteClasseSerie() {
    return listParticipanteClasseSerie;
    }

    public void setListInformacoesInstituicaoCustodiante(
    List listInformacoesInstituicaoCustodiante) {
    this.listInformacoesInstituicaoCustodiante = listInformacoesInstituicaoCustodiante;
    }

    @OneToMany(cascade=CascadeType.ALL, mappedBy=“participante”)
    public List getListInformacoesInstituicaoCustodiante() {
    if(listInformacoesInstituicaoCustodiante == null)
    listInformacoesInstituicaoCustodiante = new ArrayList();
    return listInformacoesInstituicaoCustodiante;
    }

    public void setListInformacoesRegistroFundoFidc(
    List listInformacoesRegistroFundoFidc) {
    this.listInformacoesRegistroFundoFidc = listInformacoesRegistroFundoFidc;
    }

    @OneToMany(cascade=CascadeType.ALL, mappedBy=“participante”)
    public List getListInformacoesRegistroFundoFidc() {
    if(listInformacoesRegistroFundoFidc == null)
    listInformacoesRegistroFundoFidc = new ArrayList();
    return listInformacoesRegistroFundoFidc;
    }

    public void setListClassificacaoRisco(List listClassificacaoRisco) {
    this.listClassificacaoRisco = listClassificacaoRisco;
    }

    @OneToMany(cascade=CascadeType.ALL, mappedBy=“participante”)
    public List getListClassificacaoRisco() {
    return listClassificacaoRisco;
    }

    public void setListMaterialDivulgacao(List listMaterialDivulgacao) {
    this.listMaterialDivulgacao = listMaterialDivulgacao;
    }

    @OneToMany(cascade=CascadeType.ALL, mappedBy=“participante”)
    public List getListMaterialDivulgacao() {
    return listMaterialDivulgacao;
    }

    public void setListCarteira(List listCarteira) {
    this.listCarteira = listCarteira;
    }

    @OneToMany(cascade=CascadeType.ALL, mappedBy=“participante”)
    public List getListCarteira() {
    return listCarteira;
    }

    public void setListAbertoFechado(List listAbertoFechado) {
    this.listAbertoFechado = listAbertoFechado;
    }

    @OneToMany(cascade=CascadeType.ALL, mappedBy=“participante”)
    public List getListAbertoFechado() {
    return listAbertoFechado;
    }

    public void setListInformacoesComplementares(
    List listInformacoesComplementares) {
    this.listInformacoesComplementares = listInformacoesComplementares;
    }

    @OneToMany(cascade=CascadeType.ALL, mappedBy=“participante”)
    public List getListInformacoesComplementares() {
    return listInformacoesComplementares;
    }

    public void setListInformacoesPrestadores(
    List listInformacoesPrestadores) {
    this.listInformacoesPrestadores = listInformacoesPrestadores;
    }

    @OneToMany(cascade=CascadeType.ALL, mappedBy=“participante”)
    public List getListInformacoesPrestadores() {
    return listInformacoesPrestadores;
    }

    public void setListaExercicioSocial(List listaExercicioSocial) {
    this.listaExercicioSocial = listaExercicioSocial;
    }

    @OneToMany(cascade=CascadeType.ALL, mappedBy=“participante”)
    public List getListaExercicioSocial() {
    return listaExercicioSocial;
    }
    }
    [/code]

A classe ParticipanteAssociado

[code]/**
*
*/
package br.gov.cvm.rfe.dominio.corporativo.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.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**

  • @author everton.gomes
    */
    @Entity
    @Table(name=“SIC_PARTIC_ASSOC”)
    public class ParticipanteAssociado implements Serializable {

    private static final long serialVersionUID = 1L;

    private ParticipanteAssociadoPk pk;

    private Participante participante;

    private Participante participanteAssoc;

    public void setPk(ParticipanteAssociadoPk pk) {
    this.pk = pk;
    }

    @EmbeddedId
    public ParticipanteAssociadoPk getPk() {

     if(pk == null)
     	pk = new ParticipanteAssociadoPk();
     	
     return pk;
    

    }

    public void setParticipante(Participante participante) {
    this.participante = participante;
    }

    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumns({
    @JoinColumn(name=“CD_TP_PF_PJ”,referencedColumnName=“CD_TP_PF_PJ”,insertable=false,updatable=false),
    @JoinColumn(name=“NR_PF_PJ”,referencedColumnName=“NR_PF_PJ”,insertable=false,updatable=false),
    @JoinColumn(name=“CD_TP_PARTIC”,referencedColumnName=“CD_TP_PARTIC”,insertable=false,updatable=false),
    @JoinColumn(name=“DT_REG_PARTIC”,referencedColumnName=“DT_REG_PARTIC”,insertable=false,updatable=false)
    })
    public Participante getParticipante() {
    return participante;
    }

    public void setParticipanteAssoc(Participante participanteAssoc) {
    this.participanteAssoc = participanteAssoc;
    }

    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumns({
    @JoinColumn(name=“CD_TP_PF_PJ”,referencedColumnName=“CD_TP_PF_PJ”,insertable=false,updatable=false),
    @JoinColumn(name=“NR_PF_PJ”,referencedColumnName=“NR_PF_PJ”,insertable=false,updatable=false),
    @JoinColumn(name=“CD_TP_PARTIC”,referencedColumnName=“CD_TP_PARTIC”,insertable=false,updatable=false),
    @JoinColumn(name=“DT_REG_PARTIC”,referencedColumnName=“DT_REG_PARTIC”,insertable=false,updatable=false)
    })
    public Participante getParticipanteAssoc() {
    return participanteAssoc;
    }

}[/code]

Na hora de salvar o método:

[code]public T atualiza(T entity, boolean executarFlush) {
//try {
getEntityManager().merge(entity);

//executarFlush e sempre true.
if(executarFlush){
getEntityManager().flush();
}

	//} catch (EntityExistsException ex) {
	//	throw new EntidadeJaExisteException(ex);
	//} catch (RuntimeException re) {
	//	throw new GenericDaoException(re);
	//}
	return entity;
}[/code]

cara,

ve nesse link o post que eu fiz, sua situação é a msm.

como vc ta pegando o seu entityManager?

t+

Alisson bom dia :smiley:

Eu li o codigo que vc postou, mas o que devo fazer na minha aplicação? Criar um objeto em alguma pk? Não entendi bem =/

bom dia,

entao cara, vc vai fazer o seguinte, na sua classe ParticipanteAssociado, vc vai remover o atributo participante e passar para a classe ParticipanteAssociadoPK, tirando a referencia do atributo participante que vai possuir nessa classe.

e na classe participante vc vai ter isso aqui

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "pk.participante")  
    public List<ParticipanteAssociado> getListaPartic() {  
        return listaPartic;  
    } 

isso aqui ta certo cara, duas associações para a mesma tabela.

public void setListaPartic(List<ParticipanteAssociado> listaPartic) {  
        this.listaPartic = listaPartic;  
    }  
  
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "participante")  
    public List<ParticipanteAssociado> getListaPartic() {  
        return listaPartic;  
    }  
  
    public void setListaParticAssoc(List<ParticipanteAssociado> listaParticAssoc) {  
        this.listaParticAssoc = listaParticAssoc;  
    }  
  
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "participanteAssoc")  
    public List<ParticipanteAssociado> getListaParticAssoc() {  
        if(listaParticAssoc == null)  
            listaParticAssoc = new ArrayList<ParticipanteAssociado>();  
        return listaParticAssoc;  
    }

t+

Alisson fiz algumas modificaçoes de acordo com seu post mas continuo o mesmo erro veja o que fiz

Classe Participante

[code]@Entity
@Table(name=“SIC_PARTIC”)
@NamedQueries({@NamedQuery(name=“findPartic”,query=“select distinct p from Participante p left join fetch p.pessoaFisicaJuridica where p.motivoCanc.cdMotivoCanc = 62”),
@NamedQuery(name=“findParticipante”,query=“select distinct p from Participante p left join fetch p.pessoaFisicaJuridica where p.pk.nrPfPj = ?1”)})
public class Participante implements Serializable {

private List listaAssocPartic;

public void setListaAssocPartic(List<AssociacaoParticipante> listaAssocPartic) {
	this.listaAssocPartic = listaAssocPartic;
}

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = “pk.participante”)
public List getListaAssocPartic() {
if(listaAssocPartic == null)
listaAssocPartic = new ArrayList();
return listaAssocPartic;
}

}[/code]

AssociadoParticipante

[code]@Entity
@Table(name=“SIC_ASSOC_PARTIC”)
public class AssociacaoParticipante implements Serializable {

private AssociacaoParticipantePk pk;
public void setPk(AssociacaoParticipantePk pk) {
this.pk = pk;
}
@EmbeddedId
public AssociacaoParticipantePk getPk() {
if(pk == null)
pk = new AssociacaoParticipantePk();
return pk;
}

}[/code]

AssociacaoParticipantePk

[code]/**
*
*/
package br.gov.cvm.rfe.dominio.corporativo.entidades;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;

/**

  • @author rafaela.adriana

*/
@Embeddable
public class AssociacaoParticipantePk implements Serializable {

private static final long serialVersionUID = 1L;

//private Integer cdTpPartic;

//private String cdTpPfPj;

//private Long nrPfPj;	

//private Date dtRegPartic;

private Integer cdTpAssocPartic;
	
private Date dtInicioAssocPartic;

private Participante participante;

/*public void setCdTpPartic(Integer cdTpPartic) {
	this.cdTpPartic = cdTpPartic;
}

@Column(name="CD_TP_PARTIC")
public Integer getCdTpPartic() {
	return cdTpPartic;
}*/

public void setParticipante(Participante participante) {
	this.participante = participante;
}

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumns({
@JoinColumn(name="CD_TP_PF_PJ",referencedColumnName="CD_TP_PF_PJ",insertable=false,updatable=false),
@JoinColumn(name="NR_PF_PJ",referencedColumnName="NR_PF_PJ",insertable=false,updatable=false),
@JoinColumn(name="CD_TP_PARTIC",referencedColumnName="CD_TP_PARTIC",insertable=false,updatable=false),
@JoinColumn(name="DT_REG_PARTIC",referencedColumnName="DT_REG_PARTIC",insertable=false,updatable=false)
})
public Participante getParticipante() {
	return participante;
}

/*public void setCdTpPfPj(String cdTpPfPj) {
	this.cdTpPfPj = cdTpPfPj;
}

@Column(name="CD_TP_PF_PJ")
public String getCdTpPfPj() {
	return cdTpPfPj;
}

public void setNrPfPj(Long nrPfPj) {
	this.nrPfPj = nrPfPj;
}

@Column(name="NR_PF_PJ")
public Long getNrPfPj() {
	return nrPfPj;
}

public void setDtRegPartic(Date dtRegPartic) {
	this.dtRegPartic = dtRegPartic;
}

@Column(name="DT_REG_PARTIC")
public Date getDtRegPartic() {
	return dtRegPartic;
}*/

public void setCdTpAssocPartic(Integer cdTpAssocPartic) {
	this.cdTpAssocPartic = cdTpAssocPartic;
}

@Column(name="CD_TP_ASSOC_PARTIC")
public Integer getCdTpAssocPartic() {
	return cdTpAssocPartic;
}

public void setDtInicioAssocPartic(Date dtInicioAssocPartic) {
	this.dtInicioAssocPartic = dtInicioAssocPartic;
}

@Column(name="DT_INICIO_ASSOC_PARTIC")
public Date getDtInicioAssocPartic() {
	return dtInicioAssocPartic;
}

}
[/code]

O erro:

Could not synchronize database state with session org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

cara,

posta o log do erro completo.

t+

Log:

09:06:39,999 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:61) at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:46) at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:24) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2403) at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2307) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2607) at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) at org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:296) at org.jboss.ejb3.entity.TransactionScopedEntityManager.flush(TransactionScopedEntityManager.java:211) at br.gov.cvm.rfe.dominio.daos.GenericDaoBean.atualiza(GenericDaoBean.java:52) at br.gov.cvm.rfe.dominio.daos.GenericDaoBean.atualiza(GenericDaoBean.java:38) at br.gov.cvm.rfe.servicos.ParticipanteMercadoServiceBean.salvaParticipanteMercado(ParticipanteMercadoServiceBean.java:29) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:240) at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:210) at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84) at $Proxy132.salvaParticipanteMercado(Unknown Source) at br.gov.cvm.rfe.web.backingBeans.CarteiraBB.insere(CarteiraBB.java:339) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.el.parser.AstValue.invoke(AstValue.java:131) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91) at javax.faces.component.UICommand.broadcast(UICommand.java:383) at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55) at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321) at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296) at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253) at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) at java.lang.Thread.run(Unknown Source)

cara,

tenta pegar o log de erro q vai dar na sua camada de persistencia, ta faltando mais informações.

t