在研究如何实现自定义命名策略(仅适用于表名)时,我遇到了一个无法解决的不一致性。(我在使用Hibernate-core 3.6.6.Final,在JBoss 6.1.0.Final上使用PostgreSQL 9.1.9)
似乎有三个内置的
然而,表名似乎根据一种与上述任何一种都不匹配的策略设置。
例如:
类名:
结果表名:
策略3删除所有包名称和点,然后在每个驼峰式字母前面放置下划线,最后转换为小写,这应该产生
(Hibernate 4.1.0.Final的源代码似乎在这些类中没有改变。)
有人能帮我澄清一下吗?
似乎有三个内置的
NamingStrategy
实现:
DefaultNamingStrategy
EJB3NamingStrategy
ImprovedNamingStrategy
EJB3NamingStrategy
在org.hibernate.cfg.Configuration
中。然而,表名似乎根据一种与上述任何一种都不匹配的策略设置。
例如:
类名:
package.ClassName
结果表名:
classname
策略1和2只是调用StringHelper.unqualify( className )
,它只是删除所有包名称和点,因此结果应该是ClassName
。策略3删除所有包名称和点,然后在每个驼峰式字母前面放置下划线,最后转换为小写,这应该产生
class_name
。(Hibernate 4.1.0.Final的源代码似乎在这些类中没有改变。)
有人能帮我澄清一下吗?