JavaでHibernateクエリから列名を取得しようとしましたが、オンラインで検索して解決策を見つけましたが、コードを試してみるとエラーメッセージが表示されました:
private void executeHQLQuery(String hql,String ActionCommand)
{
try
{
Session session=HibernateUtil.getSession();
session.beginTransaction();
Query q=session.createQuery(hql);
AliasToEntityMapResultTransformer INSTANCE=new AliasToEntityMapResultTransformer();
q.setResultTransformer(INSTANCE);
// q.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
List<Map<String,Object>> aliasToValueMapList=q.list();
for (Map<String,Object> map : aliasToValueMapList)
for (Map.Entry<String,Object> entry : map.entrySet()) System.out.println(entry.getKey()+" - "+entry.getValue());
List resultList=q.list();
displayResult(resultList,ActionCommand);
session.getTransaction().commit();
}
catch (HibernateException he) { he.printStackTrace(); }
}
エラーメッセージは次の行を指しています:for (Map<String,Object> map : aliasToValueMapList)
「スレッド「AWT-EventQueue-0」の例外 java.lang.ClassCastException: sakila.entity.Actor を java.util.Map にキャストできません」と表示されますが、なぜですか? それを修正する方法?
私の場合、aliasToValueMapList を EntityBeans のリストとしてループし、各項目の値を取得する方法は?