在 Play Framework 1.x 中保存模型之前执行一个方法
Posted
技术标签:
【中文标题】在 Play Framework 1.x 中保存模型之前执行一个方法【英文标题】:Execute a method before saving a model in Play Framework 1.x 【发布时间】:2012-05-20 14:28:33 【问题描述】:如何在保存模型之前执行方法?
例如在用户模型中散列密码。
@Before
注释似乎不存在于模型中。
我正在使用 PlayFramework 1.2.x
PS : 我打算将它与 CRUD 模块一起使用。
【问题讨论】:
您在寻找 JPA 的 @PrePersist 类型的回调吗? @AhamedMustafaM :是的,但我不需要那么复杂的东西。只需执行一个方法,然后保存。 【参考方案1】:查看 JPA 中的 Pre*
注释集合。例如PrePersist
和PreUpdate
。
在您的模型中,只需将您需要的注释粘贴到您要调用的方法上。
@PrePersist
public void hashPassword()
// do stuff
对于特定型号,另一个选项可能是 to override the save()
method,但除非完全必要,否则我不会这样做。如果他们提供解决方案,我会坚持使用 JPA API,但这只是我的意见。
【讨论】:
其实我在你提到覆盖save()
之后做了一些研究,结果发现覆盖save()
并不是一个坏主意,因为它调用了包含实际业务逻辑的_save()
,参考@ 987654324@
不错。为了完整起见,我会将链接添加到我的答案中。以上是关于在 Play Framework 1.x 中保存模型之前执行一个方法的主要内容,如果未能解决你的问题,请参考以下文章
获取使用 Ebean 在 Play Framework 中保存的最新更新行
如何使用 play framework 1.x 和 Amazon SES 发送电子邮件?
将 Java 类导入 Groovy 模板(Play framework 1.x)