Model: User
id
username
role
Controller:update(User u)
User old = User.findById(u.id);
if u.role NOT equals old.role
.......
问题是:User.findById(u.id);
,此代码返回的用户与PARAM u不同,不是数据库中的数据。
如何获取DATABASE值?
感谢您的帮助!
答案 0 :(得分:2)
问题实在令人困惑。您的意思是当您拨打电话findbyId(u.id)
时old.role
正在返回u
参数中找到的值而不是数据库中找到的值?
如果是这种情况,也许你可以尝试这样的事情:
JPA.em().detach(u);
User old = User.findById(u.id);
if (!u.role.equals(old.role)) {
...
}
如果您确实需要对已分离的用户u
进行更改,则需要执行以下操作:
// this will attach the user back to the hibernate session
User merged = JPA.em().merge(u);
// do something like updating the merged user
merged.property = someValue;
merged.save();