如何在Hibernate中复制"SHOW TABLES"?

3 java mysql hibernate

我正在尝试迭代我的所有表,所以我可以截断每个表(在每个JBehave测试的开头).

我以为我能够:

List<String> allTables = session.createSQLQuery("SHOW TABLES").list();
Run Code Online (Sandbox Code Playgroud)

但是hibernate会抛出一个SQLGrammarException,抱怨"找不到列'TABLE_NAME'."

我想这是因为"show tables"查询实际上并没有返回字符串列表.有没有其他方法可以使用Hibernate获取所有表的列表?

Jar*_*ski 5

尝试这样的事情:

SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE();
Run Code Online (Sandbox Code Playgroud)

对于列(与Hibernate相同的情况),请尝试:

SELECT column_name FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=YOUR_TABLE_NAME
Run Code Online (Sandbox Code Playgroud)