hibernate报NullPointerException,求解答!!

小黑打死王老汉 2014-06-17 12:17:56
代码如下
String HqlString="select new cn.hnedu.jyjk.vo.OldXjStudent"
+ "(t.yxdm, t.xh, t.xm, t.sfzhm,"
+ " t.byslxdh, t.jtlxdh, t.qq, t.email, "
+ " t.xbdm, t.xldm, t.zydm, t.sfsfbz, t.sfsfbz as sfslbdm, t.pyfsdm, t.xz, t.mzdm, t.zzmmdm, t.rxsj,convert(nvarchar,t.nbynf) as bysj,"
+ " t.zxwyyzdm, t.syszddm, t.remark8 as jtdz, "
+ " t.jtyzbm, t.ksh, t.kslbdm, t.xysbh, t.x as kzx6, t.wpdxdw, t.bjhm,convert(nvarchar,t.stuYear) as kzx8, t.jyknlbdm, "
+ " b.byqxdm, b.bdzqflbdm, b.bdzdwmc as dwmc, b.dwdm, b.bdzdwdzx as dwszddm, b.dwxzdm, b.jylbdm, "
+ " b.jyzkdm, b.bdzbz as kzx1, b.gyname as kzx5, b.zzjgdm as dwzzjg, b.dwhydm, b.zwlbdm as gzzwlbdm, b.gyszdx as sjdwszddm, b.dwlxfs as dwdh, "
+ " b.byzsbh as byzh, b.dajsdwmc as dajsdw, b.dajsdwdzx as dajsdwszd, b.dajsdwyzbm as dajsdwyb, b.dajsdwlxr, b.dajsdwlxdh as dajsdwdh) ";


List<OldXjStudent> oldsList = this.getJyzxByqxLogic().find(HqlString+
" from JyzxJsstudent t,JyzxByqx b where t.xldm=b.xldm and t.stuYear='"
+ this.get_mr_year(jyzxXxuser.getXxdm())
+ "' and t.byszgrz=1 ORDER BY t.bjhm,t.xh");

没做映射文件,直接new 的对象。是将2张有映射的表的数据集合到新对象上。。但是tomat报hibernate里面的一个get构造方法的空指针异常。但是我明明写了构造方法的。没写的话也不是报这个错,是报的没有合适的构造方法这个错啊。求大家帮我看看问题出在哪里?tomat报错如下
java.lang.NullPointerException
at org.hibernate.util.ReflectHelper.getConstructor(ReflectHelper.java:17
2)
at org.hibernate.hql.ast.tree.ConstructorNode.resolveConstructor(Constru
ctorNode.java:114)
at org.hibernate.hql.ast.tree.ConstructorNode.prepare(ConstructorNode.ja
va:88)
at org.hibernate.hql.ast.HqlSqlWalker.processConstructor(HqlSqlWalker.ja
va:840)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExpr(HqlSqlBaseWalker.
java:1956)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExprList(HqlSqlBaseWal
ker.java:1825)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectClause(HqlSqlBaseWalke
r.java:1394)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:
553)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWa
lker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.j
ava:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl
.java:228)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorIm
pl.java:160)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl
.java:111)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCa
che.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessio
nImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImp
l.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate
(HibernateTemplate.java:919)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(Hibern
ateTemplate.java:419)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativ
eSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTe
mplate.java:917)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTe
mplate.java:909)
at cn.hnedu.jyjk.dao.impl.JyzxByqxDAO.find(JyzxByqxDAO.java:148)
at cn.hnedu.jyjk.service.impl.JyzxByqxServiceImpl.find(JyzxByqxServiceIm
pl.java:33)
at cn.hnedu.jyjk.web.xx.XxAction.exportByqxDBFtoOldSystem(XxAction.java:
1171)
at cn.hnedu.jyjk.web.xx.XxAction.doExecute(XxAction.java:104)
at cn.hnedu.jyjk.web.XxuserAuditAction.execute(XxuserAuditAction.java:26
)
at org.apache.struts.action.RequestProcessor.processActionPerform(Reques
tProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:191
3)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBin
derValve.java:227)
at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.j
ava:347)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:293)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)

at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:311)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.ja
va:705)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSock
et.java:898)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:690)
at java.lang.Thread.run(Thread.java:619)
...全文
590 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Java码农老王 2016-07-15
  • 打赏
  • 举报
回复
同样的问题,哎
a375780900 2016-03-07
  • 打赏
  • 举报
回复
楼主的问题解决了吗?怎么解决的,求回复!!!
菠萝y 2015-09-14
  • 打赏
  • 举报
回复
你好,麻烦问下你这个问题最后怎么解决的? 我现在也遇到对了这个问题。好麻烦的。
  • 打赏
  • 举报
回复
引用 8 楼 whos2002110 的回复:
[quote=引用 7 楼 abc3327219 的回复:] [quote=引用 6 楼 whos2002110 的回复:] 如果你这个OldXjStudent 只是一个普通的java对象而没有与表映射, 你这个方法是无法通过hql查询得到一个List。 注解映射方法

@Entity
@Table(name = "table_name")
这两个注解是在hibernate 的jpa实现包里,别搞错了。 普通的java也可以通过hql new 查询出对象, 但是很麻烦,这也不是hibernate的主要功能, 你就认为做不到。
但是我new的对象并没有对应的表啊。我是想将2个表的数据查出来集合到一个对象里面。。。[/quote] 那这样不好做, 你可以查考这个 http://www.iteye.com/topic/741501[/quote] 谢谢啊。。我看看先。。。
whos2002110 2014-06-17
  • 打赏
  • 举报
回复
引用 7 楼 abc3327219 的回复:
[quote=引用 6 楼 whos2002110 的回复:] 如果你这个OldXjStudent 只是一个普通的java对象而没有与表映射, 你这个方法是无法通过hql查询得到一个List。 注解映射方法

@Entity
@Table(name = "table_name")
这两个注解是在hibernate 的jpa实现包里,别搞错了。 普通的java也可以通过hql new 查询出对象, 但是很麻烦,这也不是hibernate的主要功能, 你就认为做不到。
但是我new的对象并没有对应的表啊。我是想将2个表的数据查出来集合到一个对象里面。。。[/quote] 那这样不好做, 你可以查考这个 http://www.iteye.com/topic/741501
  • 打赏
  • 举报
回复
引用 6 楼 whos2002110 的回复:
如果你这个OldXjStudent 只是一个普通的java对象而没有与表映射, 你这个方法是无法通过hql查询得到一个List。 注解映射方法

@Entity
@Table(name = "table_name")
这两个注解是在hibernate 的jpa实现包里,别搞错了。 普通的java也可以通过hql new 查询出对象, 但是很麻烦,这也不是hibernate的主要功能, 你就认为做不到。
但是我new的对象并没有对应的表啊。我是想将2个表的数据查出来集合到一个对象里面。。。
whos2002110 2014-06-17
  • 打赏
  • 举报
回复
如果你这个OldXjStudent 只是一个普通的java对象而没有与表映射, 你这个方法是无法通过hql查询得到一个List。 注解映射方法

@Entity
@Table(name = "table_name")
这两个注解是在hibernate 的jpa实现包里,别搞错了。 普通的java也可以通过hql new 查询出对象, 但是很麻烦,这也不是hibernate的主要功能, 你就认为做不到。
tony4geek 2014-06-17
  • 打赏
  • 举报
回复
whos2002110 2014-06-17
  • 打赏
  • 举报
回复
引用 3 楼 abc3327219 的回复:
[quote=引用 2 楼 whos2002110 的回复:] 看异常好像说没有对应的构造方法吧, 你看new OldXjStudent()的时候参数个数什么的对不对, 还有一些整形数据类型是否有全部匹配。 话说hql写成这样真是蛋疼
你说的都看了。。应该没问题的。。按道理new的话。是不需要映射文件的吧?[/quote] 不需要设置文件, 但要有注解哦, 也就是说你你这个OldXjStudent 必需是hibernate管理的与某个张数据库表对应entity
  • 打赏
  • 举报
回复
引用 2 楼 whos2002110 的回复:
看异常好像说没有对应的构造方法吧, 你看new OldXjStudent()的时候参数个数什么的对不对, 还有一些整形数据类型是否有全部匹配。 话说hql写成这样真是蛋疼
你说的都看了。。应该没问题的。。按道理new的话。是不需要映射文件的吧?
whos2002110 2014-06-17
  • 打赏
  • 举报
回复
看异常好像说没有对应的构造方法吧, 你看new OldXjStudent()的时候参数个数什么的对不对, 还有一些整形数据类型是否有全部匹配。 话说hql写成这样真是蛋疼
  • 打赏
  • 举报
回复
一个人都没有?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧