Java Hibernate-获取数据库中的所有表名

Java Hibernate-获取数据库中的所有表名,java,oracle,hibernate,rcp,Java,Oracle,Hibernate,Rcp,我试图获取数据库(Oracle11g)中的所有表名,以便为UI中的每个表动态生成复选框。我没有在.cfg.xml文件中映射这些表 我使用了以下代码: List<Object> list = sessionProd.createQuery("select table_name from user_tables").list(); for(Object l : list){ System.out.println("L

我试图获取数据库(Oracle11g)中的所有表名,以便为UI中的每个表动态生成复选框。我没有在.cfg.xml文件中映射这些表

我使用了以下代码:

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

for(Object l : list){
    System.out.println("L : " +l.toString());
}
List List=sessionProd.createQuery(“从用户表格中选择表格名称”).List();
用于(对象l:列表){
System.out.println(“L:+L.toString());
}
但它的错误如下: org.hibernate.hql.internal.ast.QuerySyntaxException:未映射用户\表[从用户\表中选择表\名称]


请告诉我是否有任何方法可以获取Hibernate 4中的所有表名,我认为该查询不正确。试试下面的代码片段

List<Object> list = sessionProd.createQuery("show tables from Database_name").list();                               
List List=sessionProd.createQuery(“显示来自数据库的表_name”).List();

我认为这个查询不正确。试试下面的代码片段

List<Object> list = sessionProd.createQuery("show tables from Database_name").list();                               
List List=sessionProd.createQuery(“显示来自数据库的表_name”).List();

使用所有表中的select table\u name更改查询字符串

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

for(Object l : list){
     System.out.println("L : " +l.toString());
}
List List=sessionProd.createQuery(“从所有表中选择表名”).List();
用于(对象l:列表){
System.out.println(“L:+L.toString());
}

使用所有表中的select table\u name更改查询字符串

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

for(Object l : list){
     System.out.println("L : " +l.toString());
}
List List=sessionProd.createQuery(“从所有表中选择表名”).List();
用于(对象l:列表){
System.out.println(“L:+L.toString());
}

您需要使用SQL查询,而不是HQL查询

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

您需要使用SQL查询,而不是HQL查询

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

在这种情况下,Hibernate将向您返回异常,因为您尚未映射用户表。如果您想获得创建SQLQuery所需的所有表名,则会返回所需的表名。您只能对映射的表使用HQL(createQuery)

在这种情况下,Hibernate会向您返回异常,因为您尚未映射用户表。如果您想获得创建SQLQuery所需的所有表名,则会返回所需的表名。您只能对映射表使用HQL(createQuery)

使用本机SQL查询方法解决了此问题。谢谢你的建议

以下代码适用于我:

List<Object> list = sessionProd.createSQLQuery("select table_name from user_tables").list();     
List List=sessionProd.createSQLQuery(“从用户表中选择表名”).List();

使用本机SQL查询方法解决了该问题。谢谢你的建议

以下代码适用于我:

List<Object> list = sessionProd.createSQLQuery("select table_name from user_tables").list();     
List List=sessionProd.createSQLQuery(“从用户表中选择表名”).List();

Try List和for(String s:List)应该对您有帮助。Try List和for(String s:List)应该对您有帮助。
createQuery()
仅用于HQL查询
createQuery()
仅用于HQL查询它显示数据库中的所有表(不仅仅是我映射的架构中的表)。该方法也应该是createSQLQueryIt,它显示数据库中的所有表(不仅仅是我映射的模式中的表)。该方法也应该是createSQLQuery