用HQL自己写了个update!!!

原来代码:

public void updateSj(String jsly, Integer zu,String sj) {
        if (!StringUtils.isBlank(jsly)&&null!=zu&&!StringUtils.isBlank(sj)) {
            Session session = sessionFactory.getCurrentSession();
//            session.beginTransaction();
//            SQLQuery query = session.createSQLQuery("UPDATE cq_num SET sj=:sj WHERE jsly=:jsly AND zu=:zu");
//            query.setParameter("jsly", jsly);
//            query.setParameter("zu", zu);
//            query.setParameter("sj", sj);
//            query.executeUpdate();
//            session.getTransaction().commit();
            Query query = session.createQuery("UPDATE CqNum SET sj=? WHERE jsly=? AND zu=?");
            query.setString(0, sj);  
            query.setString(1, jsly);  
            query.setLong(2, zu);
            query.executeUpdate();
        }
    }

其中:

Session session = sessionFactory.getCurrentSession();
            session.beginTransaction();
            SQLQuery query = session.createSQLQuery("UPDATE cq_num SET sj=:sj WHERE jsly=:jsly AND zu=:zu");
            query.setParameter("jsly", jsly);
            query.setParameter("zu", zu);
            query.setParameter("sj", sj);
            query.executeUpdate();
            session.getTransaction().commit();

也能更新,但是太慢啦!!!(session.beginTransaction();和session.getTransaction().commit();去掉)

修改后代码:

Query query = session.createQuery("UPDATE CqNum SET sj=? WHERE jsly=? AND zu=?");
            query.setString(0, sj);  
            query.setString(1, jsly);  
            query.setLong(2, zu);
            query.executeUpdate();

OK!!!!!!!

原文地址:https://www.cnblogs.com/zch-lxh1314/p/10294852.html