我试图从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列表循环并获取每个项的值?