Java 如何在执行HQL查询后从列表中检索数据
我一直被一个问题困扰着,Hibernate,我是新来的。 我的要求是根据以下查询获取数据:Java 如何在执行HQL查询后从列表中检索数据,java,hibernate,hql,Java,Hibernate,Hql,我一直被一个问题困扰着,Hibernate,我是新来的。 我的要求是根据以下查询获取数据: return (List<MssSowLineDetail>) yodaMssHibernateFactory.getCurrentSession(). createQuery("Select MSLD.itemDefinition.itemId from MssSowLineDetail MSLD, " +" MssSowHeaderDetail MSHD
return (List<MssSowLineDetail>) yodaMssHibernateFactory.getCurrentSession().
createQuery("Select MSLD.itemDefinition.itemId from
MssSowLineDetail MSLD, " +" MssSowHeaderDetail MSHD
Where MSHD.sowHeaderId = MSLD.mssSowHeaderDetail.sowHeaderId "
+"AND MSLD.itemDefinition.itemId = '" + itemNumber +"'").list();
我得到以下例外
java.lang.ClassCastException: java.lang.String cannot be cast to com.att.yoda.mss.dataInfo.MssSowLineDetail
如果有人能给我一个快速的答复,我将不胜感激。如果我需要提供更多详细信息,请在此回复。如果您希望检索bean数据,而不仅仅是
id
,那么在您的查询中使用
“从…中选择MSLD
”
而不是
“
从…
中选择MSLD.itemDefinition.itemId”这是显而易见的。您正在检索id
,而不是整个对象。尝试使用SELECT*…
,您将有一个对象列表。从SELECT查询中,您只选择ID(MSLD.itemDefinition.itemdid),因此输出将是字符串中的ID。mssSowLineDetailList.get(0);将只返回字符串而不返回MssSowLineDetail。所以我应该只执行以下字符串id=(字符串)mssSowLineDetailList.get(0)?编号字符串mssSowLineDetail=mssSowLineDetailList.get(0);类似的,可以参考-
java.lang.ClassCastException: java.lang.String cannot be cast to com.att.yoda.mss.dataInfo.MssSowLineDetail