当前位置: 首页 > 知识库问答 >
问题:

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

颜经艺
2023-03-14

我正在尝试获取数据库(Oracle 11g)中的所有表名,以便为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());
}

但它的错误如下:组织。冬眠hql。内部的ast。QuerySyntaxException:未映射user\u表[从user\u表中选择table\u名称]

请告诉我是否有任何方法可以在Hibernate 4中获取所有表名

共有3个答案

邵星河
2023-03-14

我认为这个问题不恰当。尝试以下代码段

List<Object> list = sessionProd.createQuery("show tables from Database_name").list();                               
明宜年
2023-03-14

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

以下代码对我有用:

List<Object> list = sessionProd.createSQLQuery("select table_name from user_tables").list();     
许永年
2023-03-14

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

sessionProd.createSQLQuery("select table_name from user_tables").list();
 类似资料:
  • 问题内容: 我已经尝试过此代码 但这会引发错误: 如何获取所有表名? 问题答案: 经过检查,测试和运行。试试这个代码: 我假设,在一行的某个点上,您将获取一个 表名 列表,以可能以a 或某种形式显示。不只是展示吐司。 未经测试的代码。 这就是我的首要想法。在生产应用中使用它之前,请先进行测试。;-) 在这种情况下,请考虑对上面发布的代码进行以下更改:

  • 问题内容: 有没有一种方法可以获取MySQL数据库中所有表的行数而不在每个表上运行? 问题答案: 不过请从文档中注意:对于InnoDB表, 行数只是 SQL优化中使用 的粗略估计 。您需要使用COUNT(*)进行精确计数(这更昂贵)。

  • 查询是什么来获取雪花数据库中所有表的行数。

  • 我有一个项目,我有我所有的实体。我还有另一个项目,我试图获取每个给定实体的每个已审核表的所有数据。使用Hibernate的envers,我知道如何在以前的版本中检索对象。 但是我不知道如何使用rev et typerev字段在经过审计的X中获取所有记录数据。 有什么想法吗?

  • 问题内容: 我需要动态获取 架构中存在 的 所有表的 META信息,元信息如表,实体,列名等。 我遵循了以下教程 https://vladmihalcea.com/how-to-get-the-entity-mapping-to-database-table- binding-metadata-from-hibernate/ 如以上链接中所述,我创建了一个名为MetadataExtractorIn

  • 问题内容: 如何使用查询获取SQL Server数据库中所有表的列表。我的意图是将其动态显示在网页上。 问题答案: 尝试: 这应该给您您想要的。然后,您需要从网页中调用它,以所需格式显示。 您可能要看: 如何使用C#在组合框中从数据库获取所有表的名称 可能会帮助您完成您想做的事情。 另外-您可能想看一下SQL Server:我应该在sys表上使用information_schema表吗? 用于sy