使用以下方法,我尝试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。
答案 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 +“'”