1

我刚刚在 Hibernate 中发现了一个奇怪的问题。

在 Hibernate 框架和 json-plugin 中的 My Java EE web 项目中。我的代码是这样的

private User user;
get(),set()....

public String getUser(){
   if(findUser(...) != null){
       user = findUser(...);
       user.setPasssword("")//!important for the purpose of  does not transmit the password to the front
       return "success";
   } else {
       return "error";
   }
}

当代码执行数据库中的用户密码被清除时出现问题,我确定不会触发任何更新和插入功能。

我想知道为什么?谁能弄清楚,谢谢!

4

1 回答 1

1

这是像 Hibernate 这样的 ORM 的基本原则:您操作映射到数据库表并附加到持久会话的对象,您对这些对象所做的每一次更改都会自动透明地记录在数据库中。

如果您希望对 User 对象的更改不记录在数据库中,您需要首先使用session.evict(user).

您似乎没有掌握 Hibernate 的基本(也是非常重要的)原则。阅读其出色的文档

于 2012-05-05T12:14:07.750 回答