实体管理器合并(),然后刷新
entity manager merge(), then refresh
我很难使用实体管理器和合并功能。
我有一个 MySQL 数据库,其中包含一个用户 table,它有一个触发器。当您更新(或插入)用户时,触发器会创建一个随机盐,然后对密码 + 盐进行 SHA1。
当我想更新用户时出现问题。在我的 servlet 中,我调用我的 SessionBean 方法 updateUser(User u)
,它只包含一个 return em.merge(u)
。
当我调试时,我查看了新密码,它不是 SHA1'ed,它看起来很清楚(但它被修改了)。在数据库中,密码经过 SHA1 运算并生成盐,但在应用程序中没有。
我的问题是,我该怎么做才能刷新我的用户并将他的密码设置为新密码?
我找到的唯一解决方案是重新启动应用程序,但这一点也不方便,我无法部署需要重新启动的解决方案......
PS : 我试过 flush(),我不能做事务处理,我使用的是 NetBeans(自动生成 类和 SessionBeans),我正在学习 Java EE,所以我没有那么多知识。我也试图在他被修改后从数据库中获取用户,但密码仍然是明文。
entityManager
有适合自己的功能refresh that can refresh your entity state to state form DB. Moreover, you can configure the catch mode in your persistence.xml file : specifying the Cache Mode Settings to Improve Performance
我很难使用实体管理器和合并功能。
我有一个 MySQL 数据库,其中包含一个用户 table,它有一个触发器。当您更新(或插入)用户时,触发器会创建一个随机盐,然后对密码 + 盐进行 SHA1。
当我想更新用户时出现问题。在我的 servlet 中,我调用我的 SessionBean 方法 updateUser(User u)
,它只包含一个 return em.merge(u)
。
当我调试时,我查看了新密码,它不是 SHA1'ed,它看起来很清楚(但它被修改了)。在数据库中,密码经过 SHA1 运算并生成盐,但在应用程序中没有。
我的问题是,我该怎么做才能刷新我的用户并将他的密码设置为新密码? 我找到的唯一解决方案是重新启动应用程序,但这一点也不方便,我无法部署需要重新启动的解决方案......
PS : 我试过 flush(),我不能做事务处理,我使用的是 NetBeans(自动生成 类和 SessionBeans),我正在学习 Java EE,所以我没有那么多知识。我也试图在他被修改后从数据库中获取用户,但密码仍然是明文。
entityManager
有适合自己的功能refresh that can refresh your entity state to state form DB. Moreover, you can configure the catch mode in your persistence.xml file : specifying the Cache Mode Settings to Improve Performance