SessionFactoryBeans sfb = new SessionFactoryBeans();
Session session = null;
try{
session =sfb.getSession();
session.beginTransaction();

                  //load正常
session.load(Admin.class, 1);
//createQuery错误
                  session.createQuery("select from Admin ").list();
session.beginTransaction().commit();
}catch(Exception e){
session.beginTransaction().rollback();
e.printStackTrace();
}

sfb.closeSession(session);     session。load方法正常,但是createQuery方法却提示有错误:org.hibernate.hql.ast.QuerySyntaxException: unexpected token: from near line 1, column 8 [select from com.lgm.entity.Admin ]
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:31)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:24)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:258)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)
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(QueryPlanCache.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
at com.lgm.test.Test5.testAdmin(Test5.java:53)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:76)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
2009-10-22 23:12:17,375 ERROR [org.hibernate.hql.PARSER] - line 1:8: unexpected token: from什么原因哦...

解决方案 »

  1.   

      session.createQuery("select from Admin ")
    改为  session.createQuery("from Admin ")
      

  2.   

    createQuery里面的查询语句需为HQL
      

  3.   

    List list=session.createQuery("select a from Admin a ").list();
      

  4.   


    建议你去看看什么是HQL什么是SQL
      

  5.   

    。。我的建议是楼主,
    我是赞同我的引用的jwtigerqwe 的回复
      

  6.   

    把你的HQL贴出来,HQL语法错误啦
      

  7.   

    你的错误出在:查询语句那块,正确的HQL语句应该是这样的:Query query=session.createQuery("")。
      

  8.   

    query 直接from Object【实体】
      

  9.   

    我知道createQuery 和createSQLQuery的区别 多谢大家的提醒   是我忽略了select的使用  以为只要去掉*  保留select是可以的  呵呵 
    select a from Admin a 这个我昨天试了  但是出错了 ( 估计是写错了 没发现) 于是就一直在试那个select的语句 汗死....