0
我们有以下的域类继承策略。使用beforeUpdate更改属性对扩展类似乎没有影响?
- AbstractDomain(containts默认属性)
- 用户扩展AbstractDomain
- 运营商延伸用户
在AbstractDomain我们已经取得的方法来实现 更新前和beforeInsert使用方法,所以我们是否可以extends这些对 扩展类
AbsrtractDomain
abstract class AbstractDomain {
protected void onBeforeInsert() {
...
}
protected void onBeforeUpdate() {
...
}
def beforeInsert() {
onBeforeInsert()
}
def beforeUpdate() {
onBeforeUpdate()
}
}
在用户类,我们有逻辑加密用户密码这样的..
用户
public class User extends AbstractDomain {
@Override
protected void onBeforeUpdate() {
super.onBeforeUpdate()
if (isDirty('password')) {
encodePassword()
}
}
protected void encodePassword() {
println "encoding password!!!!"
if (springSecurityService) { // added the if clause to ensure
that tests work correct!
password = springSecurityService.encodePassword(password)
}
}
}
操作
public class Operator extends User {
// code omitted
}
因此,当我尝试更新一个操作员,看到消息“编码 密码!!!!”该物业已设置,但是当我检查数据库 密码仍然是明文。 我所做的更改似乎没有效果,似乎不会被持续。
任何线索我可能会失踪?
嗨比尔,你完全钉住了!我犯了在AbstractDomain类和User类中使用'def springSecurityService'的错误。所以User类中的那个是null!请提供答案,以便我可以接受你回答:) – Marco