【发布时间】:2020-10-07 07:58:26
【问题描述】:
public void updateUserState(User user) {
Session sess=getSession();
sess.setFlushMode(FlushMode.MANUAL);
String queryStr = "update User usr set usr.logCount = :logCount , usr.isLocked = :isLocked , usr.lastLogin = :lastLogin where usr.userId=:userId";
Query query=null;
query = sess.createNativeQuery(queryStr);
query.setParameter("logCount", user.getLogCount());
query.setParameter("isLocked", user.getIsLocked());
query.setParameter("lastLogin", user.getLastLogin());
query.setParameter("userId", user.getUserId());
query.executeUpdate();
}
这是我的代码。这不会更新数据库中的 mu 用户表,也不会引发任何错误。它反映了设置参数之前的正确值,但在执行更新之后,我在表中看不到任何更新。如果你们中的任何人能告诉我,我哪里出错了,那就太好了。提前致谢!
【问题讨论】:
-
我最后没有看到电话
Session.flush()。 -
我也试过这个,但是 Session.flush() 也没有帮助。
-
您是否在事务中运行此代码?
Transaction txn = session.beginTransaction(); ... txn.commit(); -
是的,我正在这样做。
标签: mysql sql hibernate createquery