如何在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();
}

07-27 21:47