怎么在hibernate 中执行一个update的sql语句?

时间:2021-08-10 00:39:40
我作乐一个 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().saveOrUpdate(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
_________________________________________________________
在update或者saveOrUpdate中该如何写HSQL?举个例子 不要update(bean)加分

7 个解决方案

#1


...你用了getHibernateTemplate()
而这个是直接getHibernateTemplate().saveOrUpdate(sjbm);
不用写HQL语句

#2


Session session = CommonDAO.getSession();
        Transaction t = session.beginTransaction();
        
        try{
            String sql = "update ......";
            session.createSQLQuery(sb.toString()).executeUpdate();
            t.commit();
        }catch(Exception exp){
            t.rollback();
        }finally{
            session.close();
        }

#3


String sql = "update ......";
session.createSQLQuery(sql).executeUpdate();

#4


正好用这个。。

#5


上面这个好

#6


用session.createSQLQuery(sql).executeUpdate();  如何传参

#7


引用 6 楼  的回复:
用session.createSQLQuery(sql).executeUpdate(); 如何传参

Query query = session.createSQLQuery(sql);
query.setString(index,arg0)
...
跟JDBC一样

#1


...你用了getHibernateTemplate()
而这个是直接getHibernateTemplate().saveOrUpdate(sjbm);
不用写HQL语句

#2


Session session = CommonDAO.getSession();
        Transaction t = session.beginTransaction();
        
        try{
            String sql = "update ......";
            session.createSQLQuery(sb.toString()).executeUpdate();
            t.commit();
        }catch(Exception exp){
            t.rollback();
        }finally{
            session.close();
        }

#3


String sql = "update ......";
session.createSQLQuery(sql).executeUpdate();

#4


正好用这个。。

#5


上面这个好

#6


用session.createSQLQuery(sql).executeUpdate();  如何传参

#7


引用 6 楼  的回复:
用session.createSQLQuery(sql).executeUpdate(); 如何传参

Query query = session.createSQLQuery(sql);
query.setString(index,arg0)
...
跟JDBC一样