关于Hibernate的createQuery()的空指针
当我尝试使用createQuery()运行HQL查询时,我正在努力找到空指针exception的底部。
运行查询的代码非常简单。 最初我有一个我正在调用的命名查询,但只是为了使事情更简单并消除任何复杂性我正在这样做(springwildlife是包,而Species是类/实体):
Query q = session.createQuery("SELECT s FROM springwildlife.Species s");
(顺便说一句:我也曾尝试使用包装名称和包装名称。我还尝试过更简单的“FROM springwildlife.Species”查询)
我已经创建了一个XML映射(species.hbm.xml),如下所示:
species_id_seq
在我的hibernate.cfg.xml文件中,我像这样拉入映射:
我的类/实体看起来像这样:
package springwildlife; public class Species { // properties here public Species() { } // sets, gets, etc. }
有没有人知道发生了什么? 我花了很多时间试图追踪它而且我受到了阻碍。
(我不确定它是否相关,但为了以防万一,我使用Resin作为我的服务器而IntelliJ作为我的IDE)
这是堆栈跟踪(SpeciesFactory.java中的第68行是对createQuery的调用):
[11-06-02 11:19:26.726] {http:// *:8080-2} org.springframework.web.util.NestedServletException:请求处理失败; 嵌套exception是java.lang.NullPointerException 在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656) 在org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:119) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:96) 在com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) 在com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:156) 在com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:95) 在com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:287) 在com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:792) 在com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:730) 在com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:689) 在com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:669) 在com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:617) 在com.caucho.network.listen.AcceptTask.doTask(AcceptTask.java:104) 在com.caucho.network.listen.ConnectionReadTask.runThread(ConnectionReadTask.java:98) 在com.caucho.network.listen.ConnectionReadTask.run(ConnectionReadTask.java:81) 在com.caucho.network.listen.AcceptTask.run(AcceptTask.java:67) 在com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:164) 在com.caucho.env.thread.ResinThread.run(ResinThread.java:130) 引起:java.lang.NullPointerException 在springwildlife.SpeciesFactory.getSpeciesLister(SpeciesFactory.java:68) 在springwildlife.LifelistController.handleRequestInternal(LifelistController.java:26) 在org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) 在org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) 在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) 在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) ......还有18个
由于在使用createQuery()
的行中抛出NullPointerException
,唯一可能的原因是session
是null
。
在我的情况下,Session对象是有效的,但我仍然得到NullPointerException
。 原来是我的HQL中的一个错误( SELECT TCompany FROM TCompany c...
而不是SELECT c FROM TCompany c...
)。 因此,如果会话有效,您可以检查您的HQL …
- 非托管线程Spring Quartz Websphere Hibernate
- 转换Spring Data JPA Page内容的类型
- 如何设置Hibernate来读/写不同的数据源?
- Hibernatevalidation注释 – validation至少一个字段不为空
- 我怎么能用Hibernate的“无法解析配置”错误?
- JPA – 如果不存在创建实体?
- javax.persistence.PersistenceException:org.hibernate.PersistentObjectException:传递给persist的分离实体
- 为什么在Hibernate 5中不推荐使用条件查询?
- HIbernate无法使用外键删除实体。 外键设置为null