hibernate  是执行  hql语句   from 表

解决方案 »

  1.   

    如果我用hql语句返回List对象,那么我想取到数据库中的字段名,应该怎么取呢?
    我是想把数据库中的数据取出来并生成一个xml,我找到的方法是返回的ResultSet(所以就有了上面的代码了),这样也能和容易的取到字段名。
    如果返回List我就不知道该怎么办了
      

  2.   

    Hibernate框架不是执行SQL语句,而是执行hql语句,from语句后不是接一个表名,而接一个JavaBean的名,JavaBean名后接的是一个别名!因为你的用的SQL语句,在Hiberante里就不能识别到!!在查找的字段里前面要用一个别名加点再接字段名才能查找到相应的字段!!总一个主要的原因是:你先把session关闭了然后再返回一个resultset所以会抛出一个空指针异常!!Statement   state   =   session.connection().createStatement(); 
    这里不能先加session后加connection,因为session是调用一个connection的!而且在Hibernate里面是没有Statement 个语名的!上面这句话应该改为:
    Statement state=connection.session();
      

  3.   

    你通过session得到数据库连接,再到createStatement(); 得到Statement对象 去执行sql
    是可以的
    但hibernate要求所有的数据库操作都要加入事务
    你可以开启一个事务
    Transaction tran = session.beginTransaction()
    Statement state = session.connection().createStatement(); 
    rs = state.executeQuery(sql); 
    session.close(); 
    tran.commit();
    return rs; 

      

  4.   

    rs = state.executeSQLQuery(sql);