Есть ли способ получить имя всех таблиц, которыми управляет SessionFactory
? Например, все таблицы, которые были добавлены через AnnotationConfiguration.addAnnotatedClass(...))
?Получить все имена таблиц, созданные в SessionFactory
6
A
ответ
12
Здесь HOWTO получает один TABLENAME с getClassMetadata
ClassMetadata cm = sessionFactory.GetClassMetadata(className);
AbstractEntityPersister aep = (AbstractEntityPersister) cm;
String tableName = aep.getTableName();
[EDIT]: вы можете найти все по телефону getAllClassMetadata()
и найти все имена таблиц, как этот
Map m = sessionFactory.GetAllClassMetadata();
/* iterate map*/
AbstractEntityPersister aep = m.get(/*key (className)*/)
String tableName = aep.getTableName();
2
Если вы используете JPA вместо прямой зависимости от спящего режима., Следующий код должен помочь в получении всех имен таблиц.
private List<String> getAllTables() {
List<String> tableNames = new ArrayList<>();
Session session = entityManager.unwrap(Session.class);
SessionFactory sessionFactory = session.getSessionFactory();
Map<String, ClassMetadata> map = (Map<String, ClassMetadata>) sessionFactory.getAllClassMetadata();
for(String entityName : map.keySet()){
SessionFactoryImpl sfImpl = (SessionFactoryImpl) sessionFactory;
String tableName = ((AbstractEntityPersister)sfImpl.getEntityPersister(entityName)).getTableName();
tableNames.add(tableName);
}
return tableNames;
}
1
Вы можете попробовать использовать собственные SQL-запросы.
session.createSQLQuery("SELECT * FROM user_tables").list();
, который дает список таблиц, принадлежащих LoggedIn пользователя или же вы можете использовать «ALL_TABLES» или «dba_tables» для всех таблиц для оракул database.If БД MySQL используется замените запрос с «SHOW TABLES»
Смежные вопросы
- 1. Получить все имена таблиц в приложении Django
- 2. запрос, чтобы получить все имена таблиц
- 3. Получить все таблицы соединений, которыми управляет SessionFactory
- 4. Получить имена таблиц в SQLAlchemy
- 5. JDBC - Получить все имена таблиц из базы данных OpenOffice
- 6. Как читать все имена таблиц, сгенерированные спящим?
- 7. Получить имена таблиц
- 8. Plpgsql; хранить все имена таблиц в массиве
- 9. Как получить все имена таблиц с регулярным выражением в C#?
- 10. Hibernate - получить все имена таблиц в базе данных
- 11. Получить все имена таблиц в конкретной базе данных SQL Server
- 12. Как получить все имена таблиц, используемые в представлении Oracle?
- 13. Как получить все имена таблиц в базе данных android sqlite?
- 14. Как показать все имена таблиц в luasql
- 15. Префикс ВСЕ Имена таблиц в EF6
- 16. mysql выбрать все имена таблиц, кроме
- 17. Найти все имена таблиц с именем столбца?
- 18. Получить динамически созданные имена динамических ссылок
- 19. Как получить все родительские имена
- 20. Как получить все имена таблиц и все имена столбцов и строк для каждой таблицы?
- 21. Как получить все имена таблиц и схемы без цикла
- 22. Как получить все имена таблиц из базы данных?
- 23. получить все имена таблиц с номером строки первичного ключа
- 24. Как я могу получить все имена таблиц схемы?
- 25. Получить все имена таблиц конкретной базы данных по SQL-запросу?
- 26. Запрос, чтобы вытащить все имена таблиц и имена столбцов
- 27. Выбрать все имена таблиц из БД Oracle
- 28. Как получить имена таблиц в MySql 4.0?
- 29. Получить все записи, созданные сегодня в Rails
- 30. Получить все секционированных таблиц
+1 используйте метод getAllClassMetadata, и вы получите массив getAllClassMetadata, который вы можете перебирать и собирать все имена таблиц. –
. Я просто хочу показать, что вы, конечно, можете итерации –
g также должны быть небольшими (в getClassMetadata) –