Playframework save()和_save()模型';play框架中的s方法

Playframework save()和_save()模型';play框架中的s方法,playframework,Playframework,创建PlayFramework的模型时,我们可以使用save()或_save()方法。为什么这两种方法在框架中都可用,原因是什么?(在此上下文中,它们执行相同的操作-将对象保存到数据库) 为什么我要问这个问题:我在进行验证时使用了save()方法,但是我的类的最终用户如果想在不进行验证的情况下保存,可以使用_save()。所以我问自己,为什么有两种方法都是公开的 我是这样处理的:问题是找不到适合我的地方 保存时进行验证。在里面 事实上,我已经使用 @某种方法的预科教育 当我想确定时,靠近save

创建PlayFramework的模型时,我们可以使用save()或_save()方法。为什么这两种方法在框架中都可用,原因是什么?(在此上下文中,它们执行相同的操作-将对象保存到数据库)

为什么我要问这个问题:我在进行验证时使用了save()方法,但是我的类的最终用户如果想在不进行验证的情况下保存,可以使用_save()。所以我问自己,为什么有两种方法都是公开的


我是这样处理的:问题是找不到适合我的地方 保存时进行验证。在里面 事实上,我已经使用 @某种方法的预科教育 当我想确定时,靠近save()按钮 该验证代码将被调用 坚持的时候。所以现在我同意了 save()和_save():)


实际上,请看save()的代码:

/**
*存储(即插入)实体。
*/
公共部门不保存(){
_save();
返回(T)这个;
}
因此,它只需调用_save()并返回自身以链接调用。
_save是包含真实业务逻辑的函数。
save只是活动记录设计的一个更实用的外观。
例如,为什么_savepublic不受保护?我真的不知道


_调用save()没有任何问题,但它返回void。就这些;)

是的。对我来说,如果这些方法中的一些能得到保护,那就更符合逻辑了。然后我可以使用一种有验证的方法,而另一种没有验证的方法,外部的任何人都不能使用没有验证的方法,这是合理的。可能有原因,但只有游戏开发人员可以告诉我们;)。无论如何,protected在Java中是如此严格,而且Java中没有friend类,所以我想人们倾向于不使用protected来保持所有方法的开放性。问题是在保存时找到进行验证的位置。事实上,我在save()附近的某个方法中使用@PrePersist anotion处理了这个问题,当时我想确保在持久化时会涉及验证代码。现在我对save()和_save():)没意见了
/**
 * store (ie insert) the entity.
 */
public <T extends JPABase> T save() {
    _save();
    return (T) this;
}