使用休眠获取数据库中的所有表
Get all Tables in a Db using hibernate
有没有办法使用休眠检索数据库中所有表的名称?
我在 oracle Db 中执行了查询 SELECT TABLE_NAME FROM USER_TABLES
,它工作得很好。
但是当涉及到 DB2 时,它不会。
您可以使用
List<Object> list = session.createQuery("from java.lang.Object").list();
这将 return 所有持久化实体(感谢 HQL 隐式多态性),并且这与数据库无关。请注意,它将排除没有记录的表。
如果您需要所有表,包括空表,您可以使用原生 sql 查询
List<Object[]> list = session.createSQLQuery("select * from sysibm.systables").list();
本机查询的缺点是它特定于每个数据库,例如,在 Oracle 上查询是 "select * from user_tables"。
有没有办法使用休眠检索数据库中所有表的名称?
我在 oracle Db 中执行了查询 SELECT TABLE_NAME FROM USER_TABLES
,它工作得很好。
但是当涉及到 DB2 时,它不会。
您可以使用
List<Object> list = session.createQuery("from java.lang.Object").list();
这将 return 所有持久化实体(感谢 HQL 隐式多态性),并且这与数据库无关。请注意,它将排除没有记录的表。
如果您需要所有表,包括空表,您可以使用原生 sql 查询
List<Object[]> list = session.createSQLQuery("select * from sysibm.systables").list();
本机查询的缺点是它特定于每个数据库,例如,在 Oracle 上查询是 "select * from user_tables"。