save()和_save()模型在playframework
问题描述:
方法当创建playramework的模型中,我们可以使用保存()或_save()方法。为什么这两种方法在框架中都是可用的,原因是什么? (在这种情况下,他们也是这样做的 - 将对象保存到数据库)。save()和_save()模型在playframework
我为什么问这样的:它做一些验证时,我已经使用save()方法,但我的课程结束后,用户可以使用_save(),如果他想救未经验证。所以我问自己为什么有两种方法都是公开的。
我处理这样的:问题是有找到地方 使得验证,同时节省。在 事实上,我已经使用 @PrePersist anotation处理了这个问题,当我想确定 验证代码在持久时将被调用 时,在save()附近的某些方法 。所以,现在我确定与 save()和_save():)
答
其实,看的代码保存():
/**
* store (ie insert) the entity.
*/
public <T extends JPABase> T save() {
_save();
return (T) this;
}
因此,简单地调用_save()和返回本身为了连锁呼叫。
_save是包含真实业务逻辑的功能。
保存对于活动记录设计来说只是一个更实用的外观。
为什么_save是公开的而不是例如保护?我不知道。
_save()可以没有任何问题IMO调用,但它返回void。这一切;)
没错。对我而言,如果这些方法中的某些方法能够得到保护,那将更合乎逻辑。然后,我可以使用一种方法进行验证,而其他方法没有验证,没有人可以在没有验证的情况下使用该方法,这是合理的。 – ses 2011-03-24 13:08:28
可能有一个原因,但只有一位玩家可以告诉我们;)。无论如何,在Java中受保护的限制性很强,并且Java中没有朋友类,所以我想人们倾向于不使用保护来保持所有方式的打开。 – mandubian 2011-03-25 09:57:40
问题在于找到保存时进行验证的地方。事实上,我已经使用@PrePersist anotation为save()附近的某个方法处理了这个问题,当我想确保验证代码在持久时会被调用。所以现在我可以保存()和_save():) – ses 2011-03-26 11:02:18