在我的公司,我们对表列有以下命名约定:
表:TCARS
列:TCARS_ID, TCARS_BRAND_ID, TCARS_MODEL_ID...等。
我目前有这个实体类:
@Table(name="TCARS")
public class CarEntity {
@Column(name="TCARS_ID")
private int id;
@Column(name="TCARS_BRAND_ID")
private int brandId;
// etc
}
Run Code Online (Sandbox Code Playgroud)
我想这样写我的班级:
@Table(name="TCARS")
public class CarEntity {
@Column(name="ID")
private int id;
@Column(name="BRAND_ID")
private int brandId;
// etc
}
Run Code Online (Sandbox Code Playgroud)
...并使用 Hibernate NamingStrategy根据表名完成列名。我遇到的问题是,在 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;
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
545 次 |
| 最近记录: |