java - 试图在数据库中找到一个实体

标签 java jpa entitymanager

我有这样的代码:

AJPAController aJPAController;
AClass aClass = aJPAController.find((Integer.parseInt(request.getParameter("id")));

try{
    if(aJpaController.contains(aClass)){
       response.sendRedirect("gosomewhere.com");
     }
}
catch (java.lang.NullPointerException R){
     response.sendRedirect("gosomewhereelse.com");
}

我正在尝试在数据库中查找一个实体,如果该实体在数据库中,那么它将执行一个操作,如果不存在,它将执行另一个操作。

我可能在尝试先查找然后包含方法时遇到逻辑错误..但我不知道。

预先感谢您的帮助。

编辑: 这么晚才回复很抱歉。我不得不处理一件紧急的事情。完整的错误堆栈跟踪是:

Description: An unhandled exception occurred during the execution of the web application. Please review the following stack trace for more information regarding the error.

Exception Details: java.lang.NullPointerException
  null

Possible Source of Error:
   Class Name: org.apache.jsp.user.report_005fredirect_jsp
   File Name: report_005fredirect_jsp.java from
   Method Name: _jspService
   Line Number: 74

Source not available. Information regarding the location of the exception can be identified using the exception stack trace below.

Stack Trace:

org.apache.jsp.user.report_005fredirect_jsp._jspService(report_005fredirect_jsp.java from :74)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:408)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:483)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:373)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
com.labristeknoloji.lcas.client.filters.SingleSignOutNameAddFilter.doFilter(SingleSignOutNameAddFilter.java:56)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:40)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:50)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:167)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
com.labristeknoloji.lcas.client.filters.LCASAuthenticationFilter.doFilter(LCASAuthenticationFilter.java:111)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:104)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
com.labristeknoloji.lrms.web.filter.LocaleFilter.doFilter(LocaleFilter.java:76)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:229)
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:334)
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:814)
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:743)
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:936)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:682)
java.lang.Thread.run(Thread.java:619)

最佳答案

只需检查 EntityManager.find(...)方法。

如果数据库中不存在该实体,则返回null。所以这取决于 AJPAController.find(...) 方法的实现,它是如何处理这些信息的。 (澄清一下:据我所知,AJPAControllerEntityManager 的包装器。)

关于java - 试图在数据库中找到一个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6608203/

相关文章:

java - 我可以在创建 EntityManager 之前设置架构吗?

Java EntityManager null 与 @PersistenceContext

java - 将标准输出字节从 Process 转发到 WebSocket 或读取当前 InputStream 长度

java - 在 Java 中打印十字图案

java - 根据外键值选择结果

java - 使用具有字段作为外键的 JPA 插入记录到另一个表

java - 最小化 LWJGL 中的显示

java - Ant无法开启tomcat

jpa - Jersey + HK2 + 灰熊 : Proper way to inject EntityManager?

java - 实体管理器。 Flush()是否像Commit()一样将数据保存到数据库中?