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