日期:2014-05-20  浏览次数:20911 次

怎么在hibernate 中执行一个update的sql语句?
我作乐一个   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)加分

------解决方案--------------------
...你用了getHibernateTemplate()
而这个是直接getHibernateTemplate().saveOrUpdate(sjbm);
不用写HQL语句
------解决方案--------------------
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();
}