解决方案 »

  1.   

    hibernate不是jdbc。回去看看书吧
      

  2.   

    不是的,是在session.createQuery(hql)之后,在query.setxxx(方法),我在这两个方法之间加一个输出语句,根本就不执行啊
      

  3.   

    就如我问题中描述的,直接拼接字符串都没问题,传参数的方式就不行,就算参数没有传成功,至少session.createQuery(hql)应该执行吧,然后在语句后面紧跟system.out.print("111111");根本不执行啊。求解
      

  4.   


    楼主看看下面的这段代码,应该就明白了吧。自己再去看看hibernate的API吧public List<Obj> findByTopic(String name) {
    return getSession().createQuery("From Obj t WHERE t.name=?")
    .setParameter(0, name)
    .list();
    }
      

  5.   

    传参数的方式不对,session.createQuery(hql)执行 发现错误,抛出报错信息,后面的语句停止执行。
      

  6.   

    这样我贴代码吧
           System.out.println("bbbbb");
    try{
    Query query = session.createQuery("FROM " + clazz.getName() + " WHERE id = ?").setParameter(0, ids[0].toString());
    System.out.println("aaaaaa");
         //Query query = session.createQuery("FROM " + clazz.getName() + " WHERE id = " + ids[0].toString());
         System.out.println(query);
    return query.list();
    }catch (Exception e){
    e.printStackTrace();
    }
    输出结果为:
         bbbbb
    2014-03-28 16:01:15,978 DEBUG (org.apache.struts2.dispatcher.ng.PrepareOperations:68) - skipping cleanup counter=1
      

  7.   

    还有人吗?千万不能沉啊,纠结这个问题很久了。最近一直在写这个DAO的基本类,卡在这里了。
      

  8.   

    终于解决了,是因为用myeclipse自动添加struts2 jar 包的时候会添加antlr-2.7.2.jar,但是SSH集成后实际上又添加了一个antlr.2.7.6.jar,所有导致冲突,但是系统又检测不出来,现在只有删除掉2.7.2.jar包,而且检查一下tomcat部署的项目是不是也存在两个。重新部署OK了。太激动了。搞了很久了,希望能给大家一点作用。
      

  9.   

    楼主没有明白hibernate是这么查询的  from obj中obj是映射的类而不是简单的说是字符。从实体中from出来,通过xml映射到数据库。
      

  10.   

    public List<Obj> findByTopic(String name) {
    return getSession().createQuery("From Obj t WHERE t.name=:name1")
    .setParameter("name1", name)
    .list();
    }