在创建playramework的模型时,我们可以使用save()或_save()方法.为什么这两种方法都可以在框架中使用,原因是什么?(在此上下文中,它们执行相同操作 - 将对象保存到db).
为什么我这样问:我在做一些验证时使用了save()方法,但是如果他想要保存而不进行验证,我的类的最终用户可以使用_save().所以我问自己为什么有两种方法都是公开的.
我这样处理过:问题在于找到保存时进行验证的地方.事实上,当我想确保在持久化时调用验证代码时,我已经使用@PrePersist anotation处理了这个问题,因为save()附近有一些方法.所以现在我可以使用save()和_save():)
实际上,看看save()的代码:
/**
* store (ie insert) the entity.
*/
public <T extends JPABase> T save() {
_save();
return (T) this;
}
Run Code Online (Sandbox Code Playgroud)
所以它只是调用_save()并返回自己以链接调用.
_save是包含真实业务逻辑的函数.
保存只是活动记录设计的一个更实用的外观.
为什么_save公开而不受保护?我真的不知道.
可以在没有任何问题的情况下调用_save(),但它返回void.就这样 ;)
| 归档时间: |
|
| 查看次数: |
1066 次 |
| 最近记录: |