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