Olá, estou tendo problemas de mapeamento com EJB3 em tabelas que possuem auto-relacionamento. Dá problema de referência cíclica. Alguém sabe como contornar esta situação?
Obrigado
Olá, estou tendo problemas de mapeamento com EJB3 em tabelas que possuem auto-relacionamento. Dá problema de referência cíclica. Alguém sabe como contornar esta situação?
Obrigado
É mais fácil ajudar se postar o problema que aparece.
[]'s
O erro é este:
javax.ejb.EJBException: java.lang.StackOverflowError; nested exception is:
java.lang.StackOverflowError; nested exception is: oracle.oc4j.rmi.OracleRemoteException: java.lang.StackOverflowError; nested exception is:
java.lang.StackOverflowError
oracle.oc4j.rmi.OracleRemoteException: java.lang.StackOverflowError
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.ejb.EJBUtils.getUserException(EJBUtils.java:346)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.ejb.interceptor.system.AbstractTxInterceptor.convertAndHandleMethodException(AbstractTxInterceptor.java:75)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:52)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
at SessionGrupoMarcaModelo_RemoteProxy_32ffc2.queryGrupoFindAll(Unknown Source)
at empro.frota.businessDelegate.GrupoBD.getGrupos(GrupoBD.java:29)
at empro.frota.action.PlanoManutencaoPreventivaAction.prepare(PlanoManutencaoPreventivaAction.java:417)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:118)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:623)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.handleNotFound(HttpRequestHandler.java:1041)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:911)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:619)
Nested exception is:
java.lang.StackOverflowError
at oracle.toplink.essentials.internal.helper.DatabaseField.equals(DatabaseField.java:144)
at oracle.toplink.essentials.internal.helper.DatabaseField.equals(DatabaseField.java:167)
at java.util.HashMap.get(HashMap.java:305)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:410)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
at oracle.toplink.essentials.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:418)
E o problema acontece devido ao mapeamento de uma tabela que possui auto-relacionamento.
Obrigado