2016-02-04 2 views
0

Я пытаюсь получить все имена таблиц в базе данных (Oracle 11g), чтобы динамически генерировать флажки для каждой таблицы в пользовательском интерфейсе. Я не отображал ни одну из этих таблиц в файле .cfg.xml.Hibernate - получить все имена таблиц в базе данных

Я использовал следующий код:

List<Object> list = sessionProd.createQuery("select table_name from user_tables").list();        

for(Object l : list){ 
    System.out.println("L : " +l.toString()); 
} 

Но это ошибочный, как показано ниже: org.hibernate.hql.internal.ast.QuerySyntaxException: USER_TABLES не отображается [выберите table_name из user_tables]

Пожалуйста, дайте мне знать, если есть способ, чтобы получить все имена таблиц в Hibernate 4

+0

Список Try , и (String S: список) должен помочь вам. – amkz

ответ

2

Использование собственного метода запросов SQL разрешило проблему. Спасибо за ваши предложения.

Следующий код работает для меня:

List<Object> list = sessionProd.createSQLQuery("select table_name from user_tables").list();  
0

Я думаю, что вопрос не является правильным. Попробуйте с ниже фрагмент кода

List<Object> list = sessionProd.createQuery("show tables from Database_name").list();        
+1

'createQuery()' используется только для запросов HQL –

0

изменить строку запроса с выбора table_name из ALL_TABLES

List<Object> list = sessionProd.createQuery("select table_name from all_tables").list();        

for(Object l : list){ 
    System.out.println("L : " +l.toString()); 
} 
+0

Он отображает все таблицы в базе данных (а не только те, которые представлены в схеме, которую я отобразил). Также метод должен быть createSQLQuery BB8

1

Вы должны использовать SQL запрос не HQL запросов

sessionProd.createSQLQuery("select table_name from user_tables").list(); 
0

Hibernate возвратит исключение к вам в этом случае, поскольку вы не сопоставили user_tables. Если вы хотите получить все имена таблиц, вы должны создать SQLQuery, который вернется к вам, что вам нужно. Вы можете использовать HQL (createQuery) только для сопоставленных таблиц

+0

Да. Ты прав ! – BB8

Смежные вопросы