Hibernate的createQuery()上的Null指针

我正在努力探究在尝试使用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:请求处理失败;嵌套的异常是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个

回答:

由于NullPointerException与一致createQuery(),唯一可能的原因sessionnull

以上是 Hibernate的createQuery()上的Null指针 的全部内容, 来源链接: utcz.com/qa/414896.html

回到顶部