Exclusão de registros com dependencia

1 resposta
jaimefroilan
:DOĺá pessoal eu tenho uma classe

public class Modulo {

…atributos…

Modulo moduloSuperior;

…atributos…

}

Porém eu estou com problema para excluir um Modulo que é um moduloSuperior de outro, estou utilizando JPA e ocorre o seguinte erro…

Local Exception Stack:

Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException

Internal Exception: org.postgresql.util.PSQLException: ERRO: atualização ou exclusão em tabela "modulo" viola restrição de chave estrangeira "fk_modulo_id_modulo" em "modulo"

Detail: Chave (id)=(34) ainda é referenciada pela tabela "modulo".

Error Code: 0

Call: DELETE FROM MODULO WHERE (ID = ?)

bind => [34]

Query: DeleteObjectQuery(br.gov.mec.siga.edu.nucleo.dominio.Modulo@1964175)

at oracle.toplink.essentials.exceptions.DatabaseException.sqlException(DatabaseException.java:311)

at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:654)

at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:703)

at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:492)

at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:452)

at oracle.toplink.essentials.internal.sessions.AbstractSession.executeCall(AbstractSession.java:690)

at oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)

at oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:214)

at oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.deleteObject(DatasourceCallQueryMechanism.java:205)

at oracle.toplink.essentials.internal.queryframework.StatementQueryMechanism.deleteObject(StatementQueryMechanism.java:130)

at oracle.toplink.essentials.internal.queryframework.DatabaseQueryMechanism.deleteObjectForWrite(DatabaseQueryMechanism.java:258)

at oracle.toplink.essentials.queryframework.DeleteObjectQuery.executeCommit(DeleteObjectQuery.java:98)

at oracle.toplink.essentials.internal.queryframework.DatabaseQueryMechanism.executeWrite(DatabaseQueryMechanism.java:335)

at oracle.toplink.essentials.queryframework.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:111)

at oracle.toplink.essentials.queryframework.DatabaseQuery.execute(DatabaseQuery.java:628)

at oracle.toplink.essentials.queryframework.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:555)

at oracle.toplink.essentials.queryframework.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:138)

at oracle.toplink.essentials.queryframework.DeleteObjectQuery.executeInUnitOfWorkObjectLevelModifyQuery(DeleteObjectQuery.java:125)

at oracle.toplink.essentials.queryframework.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:110)

at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2233)

at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:952)

at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:909)

at oracle.toplink.essentials.internal.sessions.CommitManager.deleteAllObjects(CommitManager.java:338)

at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.commitToDatabase(UnitOfWorkImpl.java:1047)

at oracle.toplink.essentials.internal.ejb.cmp3.base.RepeatableWriteUnitOfWork.commitToDatabase(RepeatableWriteUnitOfWork.java:403)

at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1126)

at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.issueSQLbeforeCompletion(UnitOfWorkImpl.java:2443)

at oracle.toplink.essentials.internal.ejb.cmp3.base.RepeatableWriteUnitOfWork.issueSQLbeforeCompletion(RepeatableWriteUnitOfWork.java:202)

at oracle.toplink.essentials.transaction.AbstractSynchronizationListener.beforeCompletion(AbstractSynchronizationListener.java:131)

at oracle.toplink.essentials.transaction.JTASynchronizationListener.beforeCompletion(JTASynchronizationListener.java:91)

at com.sun.enterprise.distributedtx.J2EETransaction.commit(J2EETransaction.java:419)

at com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.commit(J2EETransactionManagerOpt.java:371)

at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3792)

at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3571)

at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)

at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:205)

at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83)

at $Proxy4110.removerModulo(Unknown Source)

at br.gov.mec.siga.edu.web.managedbeans.MBManterMatrizCurricular.removerModulo(MBManterMatrizCurricular.java:617)

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 com.sun.el.parser.AstValue.invoke(AstValue.java:187)

at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)

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.AjaxViewRoot.processEvents(AjaxViewRoot.java:316)

at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:291)

at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:248)

at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:461)

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.servletService(ApplicationFilterChain.java:411)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)

at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)

at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)

at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)

at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)

at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)

at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)

at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)

at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)

at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)

at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)

at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)

at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)

at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

Caused by: org.postgresql.util.PSQLException: ERRO: atualização ou exclusão em tabela "modulo" viola restrição de chave estrangeira "fk_modulo_id_modulo" em "modulo"

Detail: Chave (id)=(34) ainda é referenciada pela tabela "modulo".

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)

at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:351)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:305)

at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:647)

 89 more

este é o meu método de exclusão:

public String removerModulo() throws Exception {
String codigoSelecionado = (String)context.getCurrentInstance().getExternalContext().getSessionMap().get(this.menuSelecionado);

try {
		ValidadorCampo.validarCampoVazio(codigoSelecionado , "selecioneComponenteRemover");
		long codSel = Long.parseLong(codigoSelecionado);
		this.umModulo = this.manterMatrizCurricular.consultarModulo(codSel);
		
		
		if(this.umModulo.getComponentesCurriculares().size() > 0 ) {
			GeradorMensagem.falha(MBManterMatrizCurricular.ID_FORM_CAD_COMP,
					"dependenciaregistro", FacesContext.getCurrentInstance());				
		}
		else{
			this.manterMatrizCurricular.removerModulo(this.umModulo);
			this.modulos = this.getModulos();
			this.umModulo = new Modulo();
		}

	} catch (NegocioException erro) {
		GeradorMensagem.falha(MBManterMatrizCurricular.ID_FORM_CAD_COMP,
				erro.getMessage(), FacesContext.getCurrentInstance());
		return MBManterMatrizCurricular.ERRO;			
	} catch (Exception e) {
		GeradorMensagem.falha(MBManterMatrizCurricular.ID_FORM_CAD_COMP,
				e.getMessage(), FacesContext.getCurrentInstance());
		return MBManterMatrizCurricular.ERRO;			
	}
	
	return "cadmatrizcurricular";
	
}
Desde já agradeço pela colaboração.Oĺá pessoal eu tenho uma classe

public class Modulo {

…atributos…

Modulo moduloSuperior;

…atributos…

}

Porém eu estou com problema para excluir um Modulo que é um moduloSuperior de outro, estou utilizando JPA e ocorre o seguinte erro…

Local Exception Stack:

Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException

Internal Exception: org.postgresql.util.PSQLException: ERRO: atualização ou exclusão em tabela "modulo" viola restrição de chave estrangeira "fk_modulo_id_modulo" em "modulo"

Detail: Chave (id)=(34) ainda é referenciada pela tabela "modulo".

Error Code: 0

Call: DELETE FROM MODULO WHERE (ID = ?)

bind => [34]

Query: DeleteObjectQuery(br.gov.mec.siga.edu.nucleo.dominio.Modulo@1964175)

at oracle.toplink.essentials.exceptions.DatabaseException.sqlException(DatabaseException.java:311)

at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:654)

at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:703)

at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:492)

at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:452)

at oracle.toplink.essentials.internal.sessions.AbstractSession.executeCall(AbstractSession.java:690)

at oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)

at oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:214)

at oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.deleteObject(DatasourceCallQueryMechanism.java:205)

at oracle.toplink.essentials.internal.queryframework.StatementQueryMechanism.deleteObject(StatementQueryMechanism.java:130)

at oracle.toplink.essentials.internal.queryframework.DatabaseQueryMechanism.deleteObjectForWrite(DatabaseQueryMechanism.java:258)

at oracle.toplink.essentials.queryframework.DeleteObjectQuery.executeCommit(DeleteObjectQuery.java:98)

at oracle.toplink.essentials.internal.queryframework.DatabaseQueryMechanism.executeWrite(DatabaseQueryMechanism.java:335)

at oracle.toplink.essentials.queryframework.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:111)

at oracle.toplink.essentials.queryframework.DatabaseQuery.execute(DatabaseQuery.java:628)

at oracle.toplink.essentials.queryframework.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:555)

at oracle.toplink.essentials.queryframework.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:138)

at oracle.toplink.essentials.queryframework.DeleteObjectQuery.executeInUnitOfWorkObjectLevelModifyQuery(DeleteObjectQuery.java:125)

at oracle.toplink.essentials.queryframework.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:110)

at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2233)

at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:952)

at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:909)

at oracle.toplink.essentials.internal.sessions.CommitManager.deleteAllObjects(CommitManager.java:338)

at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.commitToDatabase(UnitOfWorkImpl.java:1047)

at oracle.toplink.essentials.internal.ejb.cmp3.base.RepeatableWriteUnitOfWork.commitToDatabase(RepeatableWriteUnitOfWork.java:403)

at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1126)

at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.issueSQLbeforeCompletion(UnitOfWorkImpl.java:2443)

at oracle.toplink.essentials.internal.ejb.cmp3.base.RepeatableWriteUnitOfWork.issueSQLbeforeCompletion(RepeatableWriteUnitOfWork.java:202)

at oracle.toplink.essentials.transaction.AbstractSynchronizationListener.beforeCompletion(AbstractSynchronizationListener.java:131)

at oracle.toplink.essentials.transaction.JTASynchronizationListener.beforeCompletion(JTASynchronizationListener.java:91)

at com.sun.enterprise.distributedtx.J2EETransaction.commit(J2EETransaction.java:419)

at com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.commit(J2EETransactionManagerOpt.java:371)

at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3792)

at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3571)

at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)

at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:205)

at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83)

at $Proxy4110.removerModulo(Unknown Source)

at br.gov.mec.siga.edu.web.managedbeans.MBManterMatrizCurricular.removerModulo(MBManterMatrizCurricular.java:617)

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 com.sun.el.parser.AstValue.invoke(AstValue.java:187)

at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)

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.AjaxViewRoot.processEvents(AjaxViewRoot.java:316)

at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:291)

at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:248)

at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:461)

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.servletService(ApplicationFilterChain.java:411)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)

at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)

at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)

at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)

at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)

at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)

at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)

at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)

at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)

at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)

at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)

at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)

at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)

at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

Caused by: org.postgresql.util.PSQLException: ERRO: atualização ou exclusão em tabela "modulo" viola restrição de chave estrangeira "fk_modulo_id_modulo" em "modulo"

Detail: Chave (id)=(34) ainda é referenciada pela tabela "modulo".

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)

at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:351)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:305)

at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:647)

 89 more

este é o meu método de exclusão:

public String removerModulo() throws Exception {
String codigoSelecionado = (String)context.getCurrentInstance().getExternalContext().getSessionMap().get(this.menuSelecionado);

try {
		ValidadorCampo.validarCampoVazio(codigoSelecionado , "selecioneComponenteRemover");
		long codSel = Long.parseLong(codigoSelecionado);
		this.umModulo = this.manterMatrizCurricular.consultarModulo(codSel);
		
		
		if(this.umModulo.getComponentesCurriculares().size() > 0 ) {
			GeradorMensagem.falha(MBManterMatrizCurricular.ID_FORM_CAD_COMP,
					"dependenciaregistro", FacesContext.getCurrentInstance());				
		}
		else{
			this.manterMatrizCurricular.removerModulo(this.umModulo);
			this.modulos = this.getModulos();
			this.umModulo = new Modulo();
		}

	} catch (NegocioException erro) {
		GeradorMensagem.falha(MBManterMatrizCurricular.ID_FORM_CAD_COMP,
				erro.getMessage(), FacesContext.getCurrentInstance());
		return MBManterMatrizCurricular.ERRO;			
	} catch (Exception e) {
		GeradorMensagem.falha(MBManterMatrizCurricular.ID_FORM_CAD_COMP,
				e.getMessage(), FacesContext.getCurrentInstance());
		return MBManterMatrizCurricular.ERRO;			
	}
	
	return "cadmatrizcurricular";
	
}

Desde já agradeço pela colaboração. :-o

1 Resposta

Kleber-rr

Olá amigo, sei que o post é antigo, mas estou com o mesmo problema. Conseguiu resolver com o try/catch??

valeu.

Criado 4 de fevereiro de 2009
Ultima resposta 26 de jan. de 2011
Respostas 1
Participantes 2