我可以在 Play 上记录 hibernate 的 DDL 代码吗?启动?

Posted

技术标签:

【中文标题】我可以在 Play 上记录 hibernate 的 DDL 代码吗?启动?【英文标题】:Can I log hibernate's DDL code on Play! startup? 【发布时间】:2012-06-07 15:56:38 【问题描述】:

我们的应用程序是在 Java over Play 上开发的! 1.2.4。我们在 ORM 中使用 JPA over Hibernate。

根据 Play! 的默认配置,我们的开发环境将 DDL 设置为 false,而 prod 环境将其设置为 true。

到目前为止,数据库中的更改要求我们编写 SQL 脚本以在生产环境中运行,方法是:a) 了解更改的内容并将其添加到脚本文件中,或者 b) 手动检查数据库以编写增量代码。

如果我们能获得 Hibernate 执行的所有 DDL 操作的日志,那就太好了,省去了打字和手动验证。

我在 Play 上找不到任何关于此的信息!或 Hibernate 文档。

我试过在 application.conf 上设置这个,但没有成功:

jpa.debugSQL=true 

我可以看到 Select 操作,但没有 DDL。

【问题讨论】:

【参考方案1】:

Hibernate 有几个可以在 log4j.properties 中设置的日志类别。 如果您不使用 log4j.properties,请按照here 的说明创建一个。

那你需要一个hibernate日志分类列表,可以找到here。

例如,如果您想记录 DDL 语句,您应该将以下行添加到 log4j.properties 文件中:

# Log all SQL DDL statements as they are executed
log4j.logger.org.hibernate.tool.hbm2ddl=trace

您还可能会发现 jpa.ddl 参数很有用,请参阅 Play 文档了解更多信息。

【讨论】:

以上是关于我可以在 Play 上记录 hibernate 的 DDL 代码吗?启动?的主要内容,如果未能解决你的问题,请参考以下文章

在 Play 中为 Scala 实现 Hibernate

Play 2.4 JPA/Hibernate EntityManager 不刷新到数据库

有人设法在 Play Store 上发布具有短信和通话记录权限的应用程序吗?

使用 play、hibernate 和 mysql 更改 rewriteBatchedStatements

如何在 Google Play 控制台上记录卸载?

如何在 Google Play 控制台上记录卸载?