另外问个问题
HQL里是不是不能select *
而只能select 字段名

解决方案 »

  1.   

    long对应Long吧,Student stu2=(Student)session.load(Student.class,new Long(45));
    第二个不可能存在这个限制。
      

  2.   

    是Long第2问题还是存在:
    我的代码:
    Query query = session.createQuery("select * from Student as s where s.id=44");
               List list = query.list();
               for (int i = 0; i < list.size(); i++)
                {
                    Student stu=(Student)list.get(0);
                    System.out.println(stu.getStuname());
                }
    异常:
    org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [select * from hibernatetest.Student as s where s.id=44]
    at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59) at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:244) at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:155) at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54) at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71) at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:134) at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:113) at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1602) at hibernatetest.DelStudent.main(DelStudent.java:23)Caused by: line 1:8: unexpected token: * at org.hibernate.hql.antlr.HqlBaseParser.selectClause(HqlBaseParser.java:1330) at org.hibernate.hql.antlr.HqlBaseParser.selectFrom(HqlBaseParser.java:1106) at org.hibernate.hql.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:702) at org.hibernate.hql.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:296) at org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:159) at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:238) ... 9 more23:43:59,046 ERROR PARSER:33 - line 1:8: unexpected token: *
      

  3.   

    "select s from"+ Student.calss.getName()+" as s where s.id=44"
    这样才可以,
      

  4.   

    你还是读读HQL吧。里面对象跟SQL用在一起的。