如何在Hibernate中获取模型的表名?
显然以前有一种getTableName()方法ClassMetadata,但它已被删除.
有一种getClassMapping(String entityName)方法Configuration,但我不知道如何(或者如果我应该)在我的DAO实现中使用Configuration.
我的DAO实现是HibernateGeneralGenericDao的子类.
更新:事实证明,如果没有表名,我可以做我想做的事情.但是,为了便于参考,我将保持问题公开(并在他们来时尝试答案).
Fox*_*BOA 35
它有点奇怪,但它的工作原理:
ClassMetadata hibernateMetadata = sessionFactory.getClassMetadata(pClassName);
if (hibernateMetadata == null)
{
return;
}
if (hibernateMetadata instanceof AbstractEntityPersister)
{
AbstractEntityPersister persister = (AbstractEntityPersister) hibernateMetadata;
String tableName = persister.getTableName();
String[] columnNames = persister.getKeyColumnNames();
}
Run Code Online (Sandbox Code Playgroud)
Ale*_*ell 22
如果您正在使用表格注释,您可以执行以下操作:
Table table = Entity.class.getAnnotation(Table.class);
String tableName = table.name();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40725 次 |
| 最近记录: |