在 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* 注释集合。例如PrePersistPreUpdate

在您的模型中,只需将您需要的注释粘贴到您要调用的方法上。

@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 重定向删除动作

如何使用 play framework 1.x 和 Amazon SES 发送电子邮件?

将 Java 类导入 Groovy 模板(Play framework 1.x)

如何在 Visual Studio Code + java 上调试 Play Framework 1.x 应用程序

将 MySQL 连接器 Jar 链接到我的依赖项 Java Play Framework 1.x