在Jboss for Hibernate的文档中,声明
ImprovedNamingStrategy.classToTableName(String className)
方法的 className 参数应返回完全限定的类名。
classToTableName
public String classToTableName(String className)
返回非限定类名,混合大小写转换为下划线
指定者:
接口NamingStrategy中的classToTableName
参数:className - 完全限定的班级名称
返回:表名
但是当我调试我从 ImprovedNamingStrategy 类扩展的类中的相关行时,它返回非限定类名,而不是完全限定类名。
我在这里要做的是获取完全限定的类名来搜索是否有任何自定义注释放在该类上以决定在创建表时应该使用什么前缀。
如;
@CustomAnnotation("PREF_")
@Entity
public class MyEntity{}
使用此信息Hibernate应该创建一个这样的查询;
CREATE TABLE PREF_MyEntity;
我搜索过文档但找不到任何内容。
有更好的方法吗?还是有任何关于它的最佳实践?
==更新==
我已经在hibernate配置中尝试了包扫描和注释类选项,看看是否有任何区别,但没有区别。
<property name="packagesToScan">
<list>
<value>com.test.model</value>
</list>
</property>
和
<property name="annotatedClasses">
<list>
<value>com.test.model.MyEntity</value>
</list>
</property>