lz可以用hibernate中执行sql的方法啊List list=session.createSQLQuery(sql).list();

解决方案 »

  1.   

    Query query = HiberSession.createQuery(sql);
    这个是执行的hql语句,你首先要把你的那句sql转换成hql才能执行
      

  2.   

    楼上说的都对。你要用hibernate先要生成数据库表对应的类,写好映射文件以及配置文件。
    createQuery方法只认hql,要用sql的话1楼的方法可以执行。
      

  3.   

    要用HQL 呀,,兄弟,,Hibernate是可以用SQL但不是这样用的把,,
    你的这一句有问题呀
    String sql = "select * from teacher as t,classroom as cl,course as co where  t.tea_id = 't001'"+" and cl.tea_id = t.tea_id and cl.cou_id = co.cou_id";
    应当是
    String sql = "from teacher as t,classroom as cl,course as co where  t.tea_id = 't001'"+" and cl.tea_id = t.tea_id and cl.cou_id = co.cou_id";
      就可以了,,      
      

  4.   

    找本书好好的看看,,夏老师的Hibernate的深入浅出就是很不错的,,发个邮件给我把
    [email protected]我给你发个,,
    建议好好的看下HQL查询语言
      

  5.   

    可以用 hql 的 投影查询啊.
      

  6.   

    你那个表的第一个字母在hql里应该大写,和你的类要相同select * from Teacher ....试一下这个行不Criteria criteria = session.createCriteria(Teacher.class).createAlias("Classroom", "c").createAlias("Course","course")
                        .add(Expression.eq("tea_id","t001"));你的每个表的id必须是hibernate承认的吧,就是说至少要让hibernate知道表的id字段是tea_id
      

  7.   

    List l = criteria.list();就行了
      

  8.   

    呵呵,我在看孙卫琴的,讲的很好啊,不过是hibernate2.0的,现在在公司上班基本上都不用框架,每天都是看js代码,我是为了做毕业设计才看hibernate的
      

  9.   


      public List findUseSQL (){
      List list = null;
      Transaction tx = null;
      Session session = sessionFactory.openSession();
      
      tx = session.beginTransaction();
      String sql = "from mypack.customers as c,mypack.orders as o where c.id = o.customer_id";
      SQLQuery sqlQuery = session.createSQLQuery(sql);
      list = sqlQuery.list();
      System.out.println(list.size());
      tx.commit();
      return list;
      }
       
    我的代码报了这个错
    addEntity() or addScalar() must be called on a sql query before executing the query. [from mypack.customers as c,mypack.orders as o where c.id = o.customer_id]sql语句没有错,代码那有问题?