我只是好奇是否有一种方法可以绕过某个域类的beforeUpdate()和类似方法。
我需要它来恢复用户的原始密码。beforeUpdate执行密码散列算法,我不想调用它两次。
我能想到的唯一解决方案是直接连接到数据库,从而绕过Hibernate。这是我不喜欢的原因,因为数据库供应商锁定等。
谢谢你的建议。
发布于 2013-03-21 01:49:04
为什么你不在域名上放一个散列的属性....
设置新密码时将其设置为false
在beforeUpdate中您测试了散列
如果为false,则对密码进行哈希处理,并将ishashed设置为true
发布于 2013-03-21 02:09:31
您可以使用HQL:
User.executeUpdate("update User u set u.password = :password where u.id = :userId",
[password: oldHashedPassword, userId: userId])这仍然使用Hibernate及其来自数据源供应商的抽象。
https://stackoverflow.com/questions/15530586
复制相似问题