关健是我想执行我写的sql语句

解决方案 »

  1.   

    我也碰到这样的问题?public void sjbmbupdate(DbXtwhSjbmb sjbm){
         //DbXtwhSjbmb sjbm=new DbXtwhSjbmb();
         try{
         String hsql="update DbXtwhSjbmb as a "
         +"set a.ac002='"
         +sjbm.getAc002()
         +"',a.ac003='"
         +sjbm.getAc003()
         +"',a.ac004='"
         +sjbm.getAc004()+"' "
         +"where a.ac001='00'";
         System.out.println("java hsql report ; "+hsql);
         getHibernateTemplate().update(hsql);
         //etHibernateTemplate().update(sjbm);
         System.out.println("java hsql report : successful");
         }catch(Exception e){
         System.out.println(e);
         }
        }
    --------------------------------------------------------------
    java hsql report ; update DbXtwhSjbmb as a set a.ac002='管理平台',a.ac003='0003',a.ac004='000000' where a.ac001='00'
    org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: java.lang.String; nested exception is org.hibernate.MappingException: Unknown entity: java.lang.String
    应该如何写 请大家帮忙 我可以给分的
      

  2.   

    public void sjbmbupdate(String a){
    List list = (List)this.getHibernateTemplate().find("from DbXtwhSjbmb where ac001=?",a);
    DbXtwhSjbmb sjbm = (DbXtwhSjbmb )list.get(0);
    sjbm.setAc002("管理平台者");
    sjbm.setAc003("0003");
    .
    .
    .
    this.getHibernateTemplate().update(sjbm);
    }
      

  3.   

    To: ok60000 () public Collection findBySQL(String sql){
       Session session = null;
       Transaction tran = null;
       Collection list = null;
       try {
         session = sessionFactory.openSession();
         tran = session.beginTransaction();
         SQLQuery sq = session.createSQLQuery(sql);
         sq.addEntity(Student.class);
         list = sq.list();
         tran.commit();
       } catch (HibernateException e) {
         e.printStackTrace();
         tran.rollback();
       }finally{
         if(session!=null)
         session.close();
       }
       return list;
    }
      

  4.   

    Hibernage中不是有个
    session.update(Object object) 吗?
      

  5.   

    @windyt() :
    =================
    你这里是find的查询语句, 你尝试着写一些delete from *** 这样的update的sql语句看能不能执行?
      

  6.   

    hibernate都是执行hql语句,再给你找找
      

  7.   

    在native SQL里,每个字段的类型(HibernateType)都必须被定义参考org.hibernate.SQLQuery接口
      

  8.   

    如果你没有Mapping Object的话 那是没指望了自己把这个方法改成JDBC方式吧
      

  9.   

    哦,是哦。直接用SqlQuery好像不能直接执行 增 删 改 操作,不过,我找了一下,下面的方法可以的。trans = session.beginTransaction();
    Connection conn = session.connection();
    PreparedStatement stmt = conn.prepareStatement(sql);
    stmt.executeUpdate();
    stmt.execute();
    trans.commit();
      

  10.   

    如果您不愿意用saveOrUpdate()或update()方法,我想只有楼上windyt的方法了。
      

  11.   

    5楼正解  老大  hibernate最好对对象进行操作  
       hibernate你还玩sql?不是吧 那你用hibernate还有什么含义!!!
      

  12.   

    hibernate 可以直接用sql,
    如果直接用sql需要返回实体,可以直接指定对应的应体,
    用sql与用对象操作是hibernate的一个对jdbc系统转移到hibernate时的一个功能.
    非常不错
      

  13.   

    15楼此话差矣,对于有些复杂的查询是无法用hql的,只能用sql来处理
      

  14.   


    trans = session.beginTransaction();
    trans.begin();
    SQLQuery sQLQuery=session.createSQLQuery(sql);
    sQLQuery.executeUpdate(); 
    trans.commit();
      

  15.   

    SQLQuery sQLQuery=session.createSQLQuery(sql);
    sQLQuery.executeUpdate(); 
      

  16.   

    5楼说的对,我也采用了他的方法,可是新问题出现 了,这样做需要对这条记录的所有字段进行update,就是:“
    sjbm.setAc002( "管理平台者 "); 
    sjbm.setAc003( "0003 "); 


    .”
    程序到了这:“Hibernate: update User1 set address=?, age=?, email=?, gradeId=?, isOnline=?, latestDate=?, nickName=?, passwd=?, passwdAnswer=?, passwdQuestion=?, phone=?, point=?, provinceCity=?, referrer=?, registerDate=?, sex=?, status=? where id=?
    ”又进行不下去了,这个新问题怎么解决?
      

  17.   

    executeUpdate()如果我没记错的话,它好像只能进行查询,对于删除、修改、新增都没用吧!
      

  18.   

    解决办法很简单,在hibernate映射文件中加入节点<sql-query>,如:
    <sql-query name="testQuery">
       insert into t_d_test values('1','1')
    </sql-query>
    在程序中先获取到这个sql,然后执行就行了,如:
    String sql = session.getNamedQuery("testQuery").getQueryString();
    Query query = session.createSQLQuery(sql);
    query.executeUpdate();
      

  19.   

    解决办法很简单,在hibernate映射文件中加入节点<sql-query>,如:
    <sql-query name="testQuery">
       insert into t_d_test values('1','1')
    </sql-query>
    在程序中先获取到这个sql,然后执行就行了,如:
    String sql = session.getNamedQuery("testQuery").getQueryString();
    Query query = session.createSQLQuery(sql);
    query.executeUpdate();
      

  20.   

    你这样写应该是可以update的,创建的就是SQL不是HQL。 是不是其他什么出了问题