gpt4 book ai didi

java - Hibernate 的 createQuery() 上的空指针

转载 作者:行者123 更新时间:2023-12-02 07:34:52 25 4
gpt4 key购买 nike

我正在努力找出当我尝试使用 createQuery() 运行 HQL 查询时发生的空指针异常的根源。

运行查询的代码非常简单。最初我有一个正在调用的命名查询,但只是为了让事情变得更简单并消除我这样做的任何复杂性(springwildlife 是包,Species 是类/实体):

Query q = session.createQuery("SELECT s FROM springwildlife.Species s");

(顺便说一句:我也尝试过有或没有包名称。我还尝试过做一个更简单的“FROM springwildlife.Species”查询)

我创建了一个 XML 映射 (species.hbm.xml),如下所示:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name="springwildlife.Species" table="species">
<id name="id" type="java.lang.Long" column="id" >
<generator class="native">
<param name="sequence">species_id_seq</param>
</generator>

</id>

<!-- in the actual file I have one these for each item I want to be mapped -->

<property name="propertyFromClass" type="java.lang.String">
<column name="sql_table_column_name" />
</property>

</hibernate-mapping>

在我的 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: Request processing failed; nested exception is java.lang.NullPointerException    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656)    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:119)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:96)    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109)    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:156)    at com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:95)    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:287)    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:792)    at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:730)    at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:689)    at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:669)    at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:617)    at com.caucho.network.listen.AcceptTask.doTask(AcceptTask.java:104)    at com.caucho.network.listen.ConnectionReadTask.runThread(ConnectionReadTask.java:98)    at com.caucho.network.listen.ConnectionReadTask.run(ConnectionReadTask.java:81)    at com.caucho.network.listen.AcceptTask.run(AcceptTask.java:67)    at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:164)    at com.caucho.env.thread.ResinThread.run(ResinThread.java:130)Caused by: java.lang.NullPointerException    at springwildlife.SpeciesFactory.getSpeciesLister(SpeciesFactory.java:68)    at springwildlife.LifelistController.handleRequestInternal(LifelistController.java:26)    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)    ... 18 more

最佳答案

在我的例子中,Session 对象是有效的,但我仍然收到 NullPointerException。结果是我的 HQL 中出现错误(SELECT TCompany FROM TCompany c... 而不是 SELECT c FROM TCompany c...)。因此,如果 session 有效,您可以检查您的 HQL...

关于java - Hibernate 的 createQuery() 上的空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com