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