0
Hibernateを使用してMySQLのすべてのデータベースを一覧表示しようとしています。しかし、私はエラー以下になっています。以下はHQL Hibernateの "show databases"
Nov 24, 2016 11:50:27 AM org.hibernate.hql.internal.ast.ErrorCounter reportError
ERROR: line 1:1: unexpected token: show
Nov 24, 2016 11:50:27 AM org.hibernate.hql.internal.ast.ErrorCounter reportError
ERROR: line 1:1: unexpected token: show
line 1:1: unexpected token: show
at org.hibernate.hql.internal.antlr.HqlBaseParser.statement(HqlBaseParser.java:191)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:295)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:203)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:126)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:88)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:190)
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1796)
at TestHibernate.main(TestHibernate.java:40)
私のコード
Configuration cfgObj = new Configuration();
cfgObj.configure("MySQLhibernate.cfg.xml");
servcRegObj = (ServiceRegistry) new StandardServiceRegistryBuilder().applySettings(cfgObj.getProperties()).build();
SessionFactory sfObj = cfgObj.buildSessionFactory(servcRegObj);
Session session = sfObj.openSession();
BSCTable bscTblObj = new BSCTable();
Query qry = session.createQuery("show databases");
List<Object> databaseList = qry.list();
for(Object object : databaseList)
{
System.out.println(object);
}
session.close();
sfObj.close();
'show databases'は有効ではありませんHQL。そのようなベンダー固有のクエリをjdbcオブジェクトに対して直接実行するだけです。 Hibernateはあらゆる可能な方法でデータベースと対話するための銀色の弾丸ではありません。 – CollinD