我正在使用 JBoss Hibernate Perspective 来生成 JPA 实体。但是我所有的表都以 tbl_ 前缀开头。
我正在将代码从 PHP YII 迁移到 Java,并且在 YII 模型生成器中可以选择指定前缀,然后生成的模型没有“tbl”前缀。
到目前为止,我们如何使用 Eclipse 和 Hibernate 透视图来实现相同的目标,所有类都是使用 Tbl Prefix 生成的。
我正在使用 JBoss Hibernate Perspective 来生成 JPA 实体。但是我所有的表都以 tbl_ 前缀开头。
我正在将代码从 PHP YII 迁移到 Java,并且在 YII 模型生成器中可以选择指定前缀,然后生成的模型没有“tbl”前缀。
到目前为止,我们如何使用 Eclipse 和 Hibernate 透视图来实现相同的目标,所有类都是使用 Tbl Prefix 生成的。
最简单的方法是在配置中指定表属性:
<class name="User" table="tbl_user" />
如果您使用注释:
@Table(name = "tbl_user")
public class User
默认情况下,我们保持 POJO 的名称与表名相同。如果您不喜欢 hibernate 命名方案,您可以通过扩展ImprovementNamingStrategy来更改默认行为。如您所见,ImprovementNamingStrategy实现NamingStrategy。
例如:-
public class CustomImprovedNamingStrategy extends ImprovedNamingStrategy
{
@Override
public String columnName(String columnName)
{
return columnName;
}
@Override
public String tableName(String tableName)
{
return tableName.replace("tbl_","");
}
}
CustomImpovedNamingStrategy 应在创建 SessionFactory 时设置:-
SessionFactory sessionFactory = new Configuration()
.setNamingStrategy(ImprovedNamingStrategy.INSTANCE)
.addFile("Item.hbm.xml")
.addFile("Bid.hbm.xml")
.buildSessionFactory();
参考:实施命名策略。