【发布时间】:2015-06-14 10:27:54
【问题描述】:
我很难使用实体管理器和合并功能。
我有一个 MySQL 数据库,其中包含一个用户表,该表有一个触发器。当您更新(或插入)用户时,触发器会创建一个随机盐,然后 SHA1 密码 + 盐。
当我想更新用户时会出现问题。在我的 servlet 中,我调用我的 SessionBean 方法 updateUser(User u),它只包含一个 return em.merge(u)。
当我调试时,我查看了新密码,它不是 SHA1 的,它看起来很清楚(但它被修改了)。在数据库中,密码是 SHA1 并生成了盐,但不在应用程序中。
我的问题是,我该怎么做才能刷新我的用户并将他的密码设置为新密码? 我找到的唯一解决方案是重启应用程序,但是一点都不方便,我无法部署需要重启的解决方案......
PS : 我试过flush(),我不能做事务,我正在使用NetBeans(自动生成的类和SessionBeans),我正在学习Java EE,所以我没有那么多知识。我也尝试在用户修改后从数据库中获取用户,但密码仍然清晰。
【问题讨论】:
标签: jakarta-ee jpa merge entitymanager