使用休眠获取Db中的所有表

时间:2015-01-05 07:04:12

标签: java hibernate

有没有办法使用hibernate检索数据库中所有表的名称? 我在oracle Db中执行了查询SELECT TABLE_NAME FROM USER_TABLES,它运行得很好。 但是当谈到DB2时,它不会。

1 个答案:

答案 0 :(得分:4)

您可以使用

List<Object> list = session.createQuery("from java.lang.Object").list();

这将返回所有持久性实体(由于HQL隐式多态性),这与数据库无关。请注意,它将排除没有记录的表。

如果您需要所有表,包括空表,您可以使用本机SQL查询

List<Object[]> list = session.createSQLQuery("select * from sysibm.systables").list();

本机查询的缺点是它特定于每个数据库,例如,在Oracle上查询是&#34; select * from user_tables&#34;。