没见过的异常,达人进

[复制链接]
查看11 | 回复3 | 2011-5-7 01:45:08 | 显示全部楼层 |阅读模式
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.IdentNode
\-[IDENT] IdentNode: 'student' {originalText=student}

at org.hibernate.hql.ast.SelectClause.initializeExplicitSelectClause(SelectClause.java:136)

at org.hibernate.hql.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:440)

at org.hibernate.hql.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:351)

at org.hibernate.hql.antlr.HqlSqlBaseWalker.afterQuery(HqlSqlBaseWalker.java:126)

at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:471)

at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:201)

at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:151)

at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:189)

at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:130)

at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:83)

at org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:427)

at org.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:884)

at org.hibernate.impl.SessionImpl.list(SessionImpl.java:834)

at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)

at org.hashan.hibernate.basic.dao.impl.StudentDaoHibernateImpl.selectAll(StudentDaoHibernateImpl.java:64)

at org.hashan.hibernate.basic.test.TestStudentDao.main(TestStudentDao.java:21)
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
主要是因为这段代码里的query.list()引起的
public Collection selectAll() {

// TODO Auto-generated method stub

Collection students = null;

Session session = null;

Transaction tx = null;

try {

session = HibernateUtil.getSession();

tx = session.beginTransaction();



String hql = "SELECT student FROM Student";

Query query = session.createQuery(hql);

students = query.list();//这里出的异常,不过我死都不信这样写会有什么错误

tx.commit();



} catch (HibernateException e) {

// TODO Auto-generated catch block

e.printStackTrace();

tx.rollback();

throw new RuntimeException(e.getMessage());

}finally{

session.close();

}



return students;

}
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
List students = query.list();
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
谢谢,您的意思是把Collection students --->List students吗?我试过了,应该不行
其实我觉得错误在那个hql语句上,把select student 去掉应该就行了吧,我试试看啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行