Erro de atualização [RESOLVIDO]

Alguém sabe o que aconteceu???

ERROR: Não esperavámos por isso mas houve um erro no Sistema, porém já enviamos um email notificando o pessoal técnico.
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.dpcomp.webevolution.framework.view.WaveServlet.executeWebClass(WaveServlet.java:41)
	at com.wave.erp.viewria.servlet.ERPAbstractServlet.executeWebClassSpring(ERPAbstractServlet.java:46)
	at com.wave.erp.viewria.servlet.ERPServlet.service(ERPServlet.java:73)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.wave.erp.viewria.servlet.SecurityFilter.doFilter(SecurityFilter.java:94)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at com.springsource.insight.collection.tcserver.request.HttpRequestOperationCollectionValve.invoke(HttpRequestOperationCollectionValve.java:84)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: javax.persistence.EntityExistsException: org.hibernate.exception.ConstraintViolationException: could not delete: [com.dpcomp.webevolution.nfe.orm.cvf.Cvf#1]
	at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:605)
	at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:219)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:198)
	at $Proxy37.persist(Unknown Source)
	at com.wave.erp.cadastro.dao.cadastro.ERPCfopDAO.inserirFormulas(ERPCfopDAO.java:40)
	at com.wave.erp.cadastro.bo.cadastro.ERPCfopBO.inserirFormulas(ERPCfopBO.java:37)
	at com.wave.erp.cadastro.bo.cadastro.ERPCfopBO.atualizar(ERPCfopBO.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at $Proxy86.atualizar(Unknown Source)
	at com.wave.erp.cadastro.controller.cadastro.ManterERPCfop.alterar(ManterERPCfop.java:83)
	... 27 more
Caused by: org.hibernate.exception.ConstraintViolationException: could not delete: [com.dpcomp.webevolution.nfe.orm.cvf.Cvf#1]
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2541)
	at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2697)
	at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:74)
	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:146)
	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.impl.SessionImpl.forceFlush(SessionImpl.java:1021)
	at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:165)
	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
	at org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)
	at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:131)
	at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:87)
	at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
	at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)
	at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592)
	at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596)
	at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:213)
	... 48 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`waveerp`.`tbl_erp_cfop_uf`, CONSTRAINT `FK_ERP_CFOP_UF_CVF` FOREIGN KEY (`CVF_ID`) REFERENCES `tbl_cvf` (`CODIGO`))
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
	at com.mysql.jdbc.Util.getInstance(Util.java:381)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3558)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3490)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2109)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2648)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2077)
	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2362)
	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2280)
	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2265)
	at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2523)
	... 67 more

Obrigado.

Sim,

Na tentativa de excluir um registro, deu erro de integridade referencial.

Caused by: javax.persistence.EntityExistsException: org.hibernate.exception.ConstraintViolationException: could not delete: [com.dpcomp.webevolution.nfe.orm.cvf.Cvf#1]  

fk:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`waveerp`.`tbl_erp_cfop_uf`, CONSTRAINT `FK_ERP_CFOP_UF_CVF` FOREIGN KEY (`CVF_ID`) REFERENCES `tbl_cvf` (`CODIGO`))  

Olha a mensagem de erro: Cannot delete or update a parent row: a foreign key constraint fails (waveerp.tbl_erp_cfop_uf, CONSTRAINT FK_ERP_CFOP_UF_CVF FOREIGN KEY (CVF_ID) REFERENCES tbl_cvf (CODIGO))

Ainda existe referência a esse objeto que você está tentando apagar.

Coloque as referências a esses objetos = null antes de deletar (caso você estja utilizando jpa/hibernate).

É estranho eu coloquei igual a null.

@Override
	@Transactional(propagation = Propagation.REQUIRED)
	public void inserir(ERPCfop erpCfop) {
		erpCfop.setCdEmpresa(CodEmpresaHolder.get());
		Collection<ERPCfopUf> formulas = erpCfop.getFormulas();
		erpCfop.setFormulas(null);
		erpCfopDAO.inserir(erpCfop);
		inserirFormulas(erpCfop, formulas);
	}

	@Transactional(propagation=Propagation.MANDATORY)
	private void inserirFormulas(ERPCfop erpCfop, Collection<ERPCfopUf> formulas) {
		for (ERPCfopUf erpCfopUf : formulas) {
			erpCfopUf.setErpCfopId(erpCfop.getId());
		}
		erpCfopDAO.inserirFormulas(formulas);
		erpCfop.setFormulas(formulas);
	}
	
	@Transactional(propagation=Propagation.MANDATORY)
	protected void excluirFormulas(ERPCfop orm) {
		try{
			ERPCfop oldERPCfop = getErpCfopFinder().buscarERPCfopById(orm.getId());
			Collection<ERPCfopUf> oldFormulas = oldERPCfop.getFormulas();
			if (oldFormulas != null && !oldFormulas.isEmpty()){
				for(ERPCfopUf oldFormula : oldFormulas){
					getErpCfopDAO().excluir(oldFormula);
				}
			}
		}catch(ObjectNotFoundException e){
			throw new UserException(e);
		}
	}
	
	@Override
	@Transactional(propagation = Propagation.REQUIRED)
	public ERPCfop atualizar(ERPCfop erpCfop) {
		excluirFormulas(erpCfop);
		Collection<ERPCfopUf> formulas = erpCfop.getFormulas();
		erpCfop.setFormulas(null);
		inserirFormulas(erpCfop, formulas);
		erpCfop = erpCfopDAO.atualizar(erpCfop);
		return erpCfop;
	}

=/

oldFormula não está apontando para ninguém não? OBS.: Vc não está botando para null não. :stuck_out_tongue:

Tava com as @anotions erradas para as PK’s

abraços.