如何避免org.hibernate.AssertionFailure:null标识符异常?

时间:2015-02-26 13:53:34

标签: hibernate jpa ejb

我有这个jsf应用程序我需要维护并继续开发,我不断得到org.hibernate.AssertionFailure:应用程序的不同部分中的null标识符异常,有时我只在生产中获得它而不是在我的本地环境中,我一直在寻找几个星期但没有运气的解决方案,这是一个非常普遍的例外,这就是为什么我无法弄清楚是什么原因造成的。

我认为hibernate会话已损坏,但我不知道为什么并且不知道要阻止它。如何避免抛出此异常?

抛出异常的方法之一。

    public List<InvoiceFacade> getDealerInvoiceLines(Calendar date) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

    System.out.println("Date to be used: " + sdf.format(date.getTime()));

    List<InvoiceFacade> invoiceLines = new ArrayList<InvoiceFacade>();
    String query = "select * from claimparts cp inner join part p on(p.partid = cp.partid) inner join claims c on(c.claimid = cp.claimid)"
            + "inner join invoice i on(i.claimid = c.claimid and i.invoicetypeid = 2) inner join insurancecompany ic on (ic.insurancecompanyid = c.insurancecompanyid)"
            + "where c.statusid = 8 and CAST (i.paymentdate AS Date) = ? order by ic.insurancecompanyname";

    Query q = em.createNativeQuery(query, "InvoiceLines");
    try {
        q.setParameter(1, sdf.parse(sdf.format(date.getTime())));
    } catch (ParseException e) {
    }
    List<Object[]> results = q.getResultList();

    for (Object obj : results) {
        Object[] line = (Object[]) obj;
        InvoiceFacade facade = new InvoiceFacade((Part) line[0],
                (Claim) line[1], (Invoice) line[2], (ClaimParts) line[3]);
        facade.setAdminFee(getAdminFee(facade.getClaimParts()));
        invoiceLines.add(facade);
    }
    return invoiceLines;
}
  

10:51:18,612 ERROR [org.hibernate.AssertionFailure](http - 10.0.1.166-8080-31)HHH000099:发生断言失败(这可能表示Hibernate中存在错误,但更可能是因为不安全使用会话):org.hibernate.AssertionFailure:null标识符   10:51:18,620 ERROR [org.jboss.ejb3.invocation](http - 10.0.1.166-8080-31)JBAS014134:对于方法public java.util.List com.yannitech.nag.claims,组件DealerListingEJB上的EJB调用失败.ejbs.DealerListingEJB.getListings(java.util.Calendar):javax.ejb.EJBException:org.hibernate.AssertionFailure:null identifier       at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:166)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]       at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:230)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]       at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]       at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]       在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final]       at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]       在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final]       at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]       在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final]       at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)[jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]       在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final]       at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:32)[jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]       在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final]       at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)[jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]       在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final]       at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final]       在org.jboss.as.ee.component.ViewService $ View.invoke(ViewService.java:165)[jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]       在org.jboss.as.ee.component.ViewDescription $ 1.processInvocation(ViewDescription.java:173)[jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]       在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final]       at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)[jboss-invocation-1.1.1.Final.jar:1.1.1.Final]       在org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:72)[jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]       at com.yannitech.nag.claims.ejbs.DealerListingEJB $$$ view388.getListings(Unknown Source)[claims-ejb.jar:]       在com.yannitech.nag.claims.controllers.ListingController.loadListingAll(ListingController.java:290)       在com.yannitech.nag.claims.controllers.ListingController.loadListing(ListingController.java:266)       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[rt.jar:1.6.0_38]       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[rt.jar:1.6.0_38]       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[rt.jar:1.6.0_38]       在java.lang.reflect.Method.invoke(Method.java:597)[rt.jar:1.6.0_38]       在org.apache.el.parser.AstValue.invoke(AstValue.java:262)       at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)       在org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)[weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]       at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)[weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]       at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)       at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)       at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)       在javax.faces.component.UICommand.broadcast(UICommand.java:315)       在javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)       在javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)       at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)       在com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)       在com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)       在javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)       在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)       在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)       在org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98)       在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)       在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)       在com.yannitech.nag.claims.filters.AuthFilter.doFilter(AuthFilter.java:51)       在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)       在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)       在org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)[weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]       在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)       在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)       在com.yannitech.nag.claims.filters.AuthFilter.doFilter(AuthFilter.java:51)       在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)       在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)       在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)       在org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)[jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]       at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)       在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)       在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)       在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)       在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)       在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:671)       在org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:930)       在java.lang.Thread.run(Thread.java:662)[rt.jar:1.6.0_38]   引起:org.hibernate.AssertionFailure:null标识符

0 个答案:

没有答案
相关问题