获取在SessionFactory中设置的所有表名

dig*_*nie 6 java hibernate

有没有办法检索由SessionFactory?管理的所有表的名称?例如,通过添加的所有表格AnnotationConfiguration.addAnnotatedClass(...))

小智 12

以下是如何获取一个tableName getClassMetadata

ClassMetadata cm = sessionFactory.GetClassMetadata(className);

AbstractEntityPersister aep = (AbstractEntityPersister) cm;
String tableName = aep.getTableName();
Run Code Online (Sandbox Code Playgroud)

[编辑]:您可以通过调用getAllClassMetadata()找到所有表格并查找所有表格名称

Map m = sessionFactory.GetAllClassMetadata();
/* iterate map*/
AbstractEntityPersister aep = m.get(/*key (className)*/) 
String tableName = aep.getTableName(); 
Run Code Online (Sandbox Code Playgroud)

  • `getClassMetadata` 和 `getAllClassMetadata` 现已弃用 (3认同)
  • +1使用"getAllClassMetadata"方法,您将获得一个getAllClassMetadata数组,您可以迭代并收集所有表名 (2认同)