Hibernate:基于表名的列名?

Hibernate:基于表名的列名?,hibernate,orm,Hibernate,Orm,在我的公司,我们对表列有这样的命名约定: 表:TCARS 列:TCARS\u ID、TCARS\u品牌\u ID、TCARS\u型号\u ID。。。等等 我目前拥有此实体类: @Table(name="TCARS") public class CarEntity { @Column(name="TCARS_ID") private int id; @Column(name="TCARS_BRAND_ID") private int brandId; /

在我的公司,我们对表列有这样的命名约定:

表:
TCARS
列:
TCARS\u ID、TCARS\u品牌\u ID、TCARS\u型号\u ID
。。。等等

我目前拥有此实体类:

@Table(name="TCARS")
public class CarEntity {
    @Column(name="TCARS_ID")
    private int id;

    @Column(name="TCARS_BRAND_ID")
    private int brandId;

    // etc
}
我想这样写我的课堂:

@Table(name="TCARS")
public class CarEntity {
    @Column(name="ID")
    private int id;

    @Column(name="BRAND_ID")
    private int brandId;

    // etc
}
…并使用Hibernate根据表名完成列名。我遇到的问题是,在NamingStrategy接口上,我在配置列名时无法访问表名,因此我无法用表名作为列名的前缀

有什么解决办法吗


提前感谢。

NHibernate在配置类上有一个BeforeBind事件,也可能是Hibernate

// pseudocode
Hibernate.Cfg.Configuration config;

config.BeforeBindMapping + eventhandler
{
    HbmClass c = RootClasses[0];

    foreach(IColumnsMapping hascolumns in c.Items.OfType<IColumnsMapping>())
    {
        hascolumns.Columns[0].Text = c.Table.Name + hascolumns.Columns[0].Text;
    }
};
//伪代码
Hibernate.Cfg.Configuration配置;
config.BeforeBindMapping+eventhandler
{
HbmClass c=根类[0];
foreach(IColumnsMapping在c.Items.OfType()中有列)
{
hascolumns.Columns[0]。Text=c.Table.Name+hascolumns.Columns[0]。Text;
}
};

遗憾的是,我在Hibernate中找不到与BeforeBindMapping类似的东西。无论如何谢谢你!