更新查询不会更新表

时间:2014-04-28 15:17:19

标签: java hibernate hql

使用以下方法,我尝试update名为accesstoken的列。没有例外,没有错误,但表格列没有更新。可能是什么原因 ?我要离开吗?

public void updateAccessToken(int id , String accessToken) {

    try {
        Session session = new HVR().getSession();
        System.out.println("ID :--> " + id);
        String hql = "UPDATE UCred set accessToken ='" + accessToken + "'" + " WHERE id ='" + id + "'";
        Query query = session.createQuery(hql);
        query.executeUpdate();
        session.close();
    }catch(Exception exc) {
        exc.printStackTrace();
    }
}

注意:最初将accesstoken设置为null。

2 个答案:

答案 0 :(得分:1)

如果您管理自己的交易(即不由Spring,JTA等容器管理),那么您需要开始和结束交易。

使用

session.getTransaction().begin();

session.getTransaction().commit(); 

然后你的代码就像这样,

public void updateAccessToken(int id , String accessToken) {

    try {
        Session session = new HVR().getSession();

session.getTransaction().begin();
        System.out.println("ID :--> " + id);
        String hql = "UPDATE UCred set accessToken ='" + accessToken + "'" + " WHERE id ='" + id + "'";
        Query query = session.createQuery(hql);
        query.executeUpdate();

session.getTransaction().commit();

        session.close();
    }catch(Exception exc) {
        exc.printStackTrace();
    }
}

答案 1 :(得分:-1)

是不是因为你将id括在引号中,例如

  

“WHERE id ='”+ id +“'”

相关问题