为什么在Java中尝试从Hibernate获取列名时获取错误消息?
我试图从Java中的Hibernate查询中获取列名,我进行了一些在线搜索并找到了一个解决方案,但当我尝试代码时,它给了我错误消息:为什么在Java中尝试从Hibernate获取列名时获取错误消息?,java,hibernate,names,Java,Hibernate,Names,我试图从Java中的Hibernate查询中获取列名,我进行了一些在线搜索并找到了一个解决方案,但当我尝试代码时,它给了我错误消息: private void executeHQLQuery(String hql,String ActionCommand) { try { Session session=HibernateUtil.getSession(); session.beginTransaction(); Query q=ses
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(); }
}
private void executeHQLQuery(String hql,String ActionCommand)
{
尝试
{
Session Session=HibernateUtil.getSession();
session.beginTransaction();
Query q=session.createQuery(hql);
AliasToEntityMapResultTransformer实例=新的AliasToEntityMapResultTransformer();
q、 setResultTransformer(实例);
//q.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
列表别名ToValueMapList=q.List();
用于(映射:aliasToValueMapList)
for(Map.Entry:Map.entrySet())System.out.println(Entry.getKey()+“-”+Entry.getValue());
List resultList=q.List();
显示结果(结果列表、操作命令);
session.getTransaction().commit();
}
catch(hibernateeexception he){he.printStackTrace();}
}
错误消息指向以下行:for(映射图:aliasToValueMapList)
它说:“线程“AWT-EventQueue-0”java.lang.ClassCastException中的异常:sakila.entity.Actor不能转换为java.util.Map”,为什么?如何修复它
在我的例子中,如何将aliasToValueMapList作为EntityBeans列表循环,并获取每个项的值?我认为您的查询返回EntityBeans列表,而转换无法应用于它们。也许这篇文章会对您有所帮助。使用
query.setResultTransforer()
将设置结果的形状
您正在分配的结果类型应为AliasToEntityMapResultTransformer
,并强制转换为Map
所以它抛出了ClassCastException
它返回类型为AliasToEntityMapResultTransformer
的结果
希望这有帮助:)
参考: