【发布时间】:2015-09-30 05:47:03
【问题描述】:
NamingStrategy 在 Hibernate 4.2/4.3 (HHH-7079) 中已被标记为已弃用。从 Hibernate 5 开始,现在它将附带两个替换(?)接口 ImplictNamingStrategy 和 PhysicalNamingStrategy (HHH-7078),并最终放弃了对旧的 NamingStrategy 的支持。这就是为什么 Spring 即将支持的 Hibernate5 甚至删除了配置器 namingStrategy() 并支持 implicitNamingStrategy() 和 physicalNamingStrategy()。到目前为止,一切顺利。
虽然在一些文档(即不完整的working-5.0-migration-guide.md)和即将到来的 Hibernate 5(截至今天)的(生成的)发行说明中提到了它,但我没有找到具体的例子 如何 em> 实际使用这些。
也许我遗漏了一些东西,但 JavaDoc 和问题都没有显示出两种策略类型的想法的任何证据。此外,我已经有了一个基于NamingStrategy 的策略:一个基于well-known one 的自定义OracleNamingStrategy。
虽然我对代码中的适当解决方案感兴趣(显然),但实际问题是获得有效的迁移文档和/或重组命名策略的概念。
也相关:
【问题讨论】:
-
你已经提到了 HHH-7078 还有一个指向 HHH-9417 的链接,它描述了他们拆分 NamingStrategy 的原因。对于迁移,您现有的
OracleNamingStrategy必须进行修改,以便它实现PhysicalNamingStrategy。这是你的问题吗? -
@andih 谢谢。那么,
PhysicalNamingStrategy是NamingStrategy的“继任者”吗? HHH-9417 非常简短地解释了该主题;是的,它可能会有所帮助。我仍然不相信许多问题中的 2-3 行(这不是文档)。 -
我不会称它为继任者。这取决于提供不同命名策略的意图。如果您想控制隐式名称的生成方式,则必须实现
ImplicitNamingStrategy。如果您的意图是控制隐式/显式ames 映射到物理数据库表/列的方式,则必须实现PhysicalNamingStrategy。如果您需要有关如何以及为什么必须搜索开发邮件列表的更多信息。随时帮助他们更新文档 - 这是一个开源项目。欢迎贡献者。
标签: java hibernate hibernate-5.x