0

我正在使用 JBoss Hibernate Perspective 来生成 JPA 实体。但是我所有的表都以 tbl_ 前缀开头。

我正在将代码从 PHP YII 迁移到 Java,并且在 YII 模型生成器中可以选择指定前缀,然后生成的模型没有“tbl”前缀。

到目前为止,我们如何使用 Eclipse 和 Hibernate 透视图来实现相同的目标,所有类都是使用 Tbl Prefix 生成的。

4

1 回答 1

1

最简单的方法是在配置中指定表属性:

<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(); 

参考:实施命名策略

PS:同理可以使用DefaultNamingStrategy来修改 Hibernate 的默认命名策略。

于 2014-09-22T10:30:30.580 回答