如何在没有隐式更新的情况下从实体获取旧值

时间:2013-12-23 12:17:54

标签: hibernate stripes

我有一个用户表单。

我想在用户提交表单时将该表单中的新密码值与同一用户已保存在DB中的密码进行比较。

但是当我尝试从DB(findByUniqueKey)获取当前用户数据时,它会在检索密码字段之前使用新值更新密码字段。

所以我的问题是:如何在db中获取旧密码?

非常感谢

这是我的简化控制器:

public class UserActionBean {
  @SpringBean
  private UserDAO userDAO;
  private User currentUser;
  private User parentUser;

  @Before(stages = LifecycleStage.BindingAndValidation)
  public void preView() {
    [...]
    parentUser = userDAO.findByUniqueKey("login", getContext().getAuthentication().getLogin());
    [...]
  }

  @HandlesEvent("updateUser")
  public Resolution addUser() {
    [...]
  }

  @ValidationMethod(on = {"updateUser"})
  public void checkForm(ValidationErrors errors) {
    User oldUser = userDAO.findByUniqueKey("login", currentUser.getLogin());
    if (oldUser.getPassword().equals(currentUser.getPassword())) {
      // oldUser password is the same as the currentUser password
      // Even if currentUser password is changed at submission.
    }
  }

  // getters / Setters
}

0 个答案:

没有答案