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)
请问高手,这是怎么回事? 展开
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)
请问高手,这是怎么回事? 展开
4个回答
展开全部
我debug到List list= session.createSQLQuery(queryString).list();query的list方法没有执行..
应该是还有一个步骤: 添加映射实体, 好象是query.addEntity(User.class);
我好久都没有从事jsp开发了,记得不太清楚了
应该是还有一个步骤: 添加映射实体, 好象是query.addEntity(User.class);
我好久都没有从事jsp开发了,记得不太清楚了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把查询的对象select * from User这个语句修改为" from 类的全路径" 就可以了。试下吧.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
异常信息没有截取完整。如果是查询实体的话直接省去 select * 就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询