SOS!hibernate中的query对象不能执行list方法

我使用hibernate的逆向工程生成了一个messageDAO,该DAO继承自BaseHibernateDAO,然后我写了以下方法:publicListfindRece... 我使用hibernate的逆向工程生成了一个messageDAO,该DAO继承自BaseHibernateDAO,然后我写了以下方法:
public List findReceiveInfo(String receiveID){
try {
StringBuffer sql = new StringBuffer();
sql.append("select * from User");
String queryString=new String(sql);
Session session=getSession();
//session.flush();
//Transaction t=session.beginTransaction();
System.out.println(session==null);

//List list=session.createQuery(queryString).list();
List list= session.createSQLQuery(queryString).list();
//q.setString("receiverId", receiveID);
/*System.out.println(q.toString());*/
// List list=q.list();
//t.commit();
//session.close();
return list;
} catch (RuntimeException re) {
// TODO: handle exception
throw re;
} }我debug到List list= session.createSQLQuery(queryString).list();query的list方法没有执行,但是hibernate打印出了“Hibernate: select * from user”,然后浏览器报错
org.hibernate.exception.GenericJDBCException: could not execute query
org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
org.hibernate.loader.Loader.doList(Loader.java:2235)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
org.hibernate.loader.Loader.list(Loader.java:2124)
org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:312)
org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1723)
org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:175)
dao.MessageDAO.findReceiveInfo(MessageDAO.java:176)
service.udptableService.askInfo(udptableService.java:22)
action.ReceiveInfoAction.execute(ReceiveInfoAction.java:17)
请问高手,这是怎么回事?
展开
 我来答
Java_Mr
2012-10-25 · TA获得超过216个赞
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:102万
展开全部
看看映射文件中的java类型和数据中的类型是否对应,有时候及修改了类型,会导致类型转换错误
天猫神童
2012-10-25
知道答主
回答量:8
采纳率:0%
帮助的人:1.2万
展开全部
我debug到List list= session.createSQLQuery(queryString).list();query的list方法没有执行..
应该是还有一个步骤: 添加映射实体, 好象是query.addEntity(User.class);
我好久都没有从事jsp开发了,记得不太清楚了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
love网店专员
2012-11-03 · TA获得超过357个赞
知道小有建树答主
回答量:775
采纳率:84%
帮助的人:117万
展开全部
把查询的对象select * from User这个语句修改为" from 类的全路径" 就可以了。试下吧.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hanqian2007
2012-10-31 · 超过16用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:41.6万
展开全部
异常信息没有截取完整。如果是查询实体的话直接省去 select * 就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式