用Hibernate高版本的时候可以用session.create SqlQuery(“原生sql”);
但是现在让我换低版本Hibernate,我执行原生Sql的时候报错误!我应该用什么办法,能修改少量代码就能让低版本Hibernate
支持原生Sql,我暂时从session获取connection然后在用,
Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql);原始的JDBC方法操作。
但是感觉这样解决方法感觉不太好!不知道有什么好办法吗?

解决方案 »

  1.   

    sql:Query query = session.createSQLQuery(sql);
    hql:Query query = session.createQuery(hql);
      

  2.   

    不知道你的版本有多低。lz查一下低版本的api。查有关sqlquery的方法应该有。
      

  3.   

    应该把你要用的hibernate的版本贴出来,这样才能知道什么版本,然后去查相应的API
      

  4.   

    http://www.cdpub.cn/go.asp?u=etcs&ad=1
      

  5.   

    个人认为既然用了hibernate..那么就用hql语句..这样做可以方便以后数据库的移植...
      

  6.   

    如果是查询结果集的话呢,建议用HQL,因为它可以将结果集自动封装成类。。习惯就好了。HQL和SQL差别不大。
      

  7.   

    主要是,程序都已经全部写完了要修改成hql比较麻烦....................只能用先行的原生sql
      

  8.   

    我用 createSQLQuery  报这个错误啊
    return getHibernateTemplate().getSessionFactory().openSession()
    .createSQLQuery(" select filed1,sum(filed2)ad gFiled2 from tableA group by gFiled2")
    .list();org.hibernate.QueryException: addEntity() or addScalar() must be called on a sql query before executing the query. [select filed1,sum(filed2)ad gFiled2 from tableA group by gFiled2]
    at org.hibernate.impl.SQLQueryImpl.verifyParameters(SQLQueryImpl.java:169)
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:140)
      

  9.   

    我用 createSQLQuery 执行原生sql  报这个错误啊 
    return getHibernateTemplate().getSessionFactory().openSession() 
    .createSQLQuery(" select filed1,sum(filed2)ad gFiled2 from tableA group by gFiled2") 
    .list(); org.hibernate.QueryException: addEntity() or addScalar() must be called on a sql query before executing the query. [select filed1,sum(filed2)ad gFiled2 from tableA group by gFiled2] 
    at org.hibernate.impl.SQLQueryImpl.verifyParameters(SQLQueryImpl.java:169) 
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:140)
      

  10.   

    select filed1,sum(filed2)ad gFiled2 from tableA group by gFiled2SQL erros !!!!!!!
      

  11.   

    我随便写了个sql作为演示啊。........................sql肯定没问题,我在客户端执行过的啊!
    select filed1,sum(filed2)ad gFiled2 from tableA group by filed1
      

  12.   


    Query query = session.createSQLQuery(sql);
    List list=query.list();//这样就可查出数据了
      

  13.   

    Java code 
    Query query = session.createSQLQuery(sql).addEntity("",Class.class); 
    List list=query.list();//这样就可查出数据了