如何在Hibernate中获取模型的表名?
显然, getTableName()
中曾经有一个ClassMetadata
方法,但已将其删除。
getClassMapping(String entityName)
中有一个 Configuration
方法,但是我不知道如何(或者是否应该)在我的DAO实现中使用Configuration。
我的DAO实现是HibernateGeneralGenericDao的子类。
更新:事实证明,不用表名,我可以做我想做的事情。但是,为了引用,我将保持开放的问题(并尝试答案)。
最佳答案
有点奇怪,但是可以用:
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();
}