如何在执行HQL查询后从列表中检索数据

时间:2013-03-05 04:10:12

标签: java hibernate hql

我一直遇到Hibernate的问题,我是新手。 我的要求是根据以下查询获取数据:

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();

执行查询,我的列表大小为3但是当我执行

MssSowLineDetail mssSowLineDetail = mssSowLineDetailList.get(0);

我收到以下异常

 java.lang.ClassCastException: java.lang.String cannot be cast to com.att.yoda.mss.dataInfo.MssSowLineDetail

如果有人能快速回复,我真的很感激。如果我需要提供更多详细信息,请在此回复。

2 个答案:

答案 0 :(得分:0)

如果要检索bean数据,而不仅仅是id,那么在查询中使用     “select MSLD from ...” 代替     “Select MSLD.itemDefinition.itemId from ...

答案 1 :(得分:0)

这很明显。您正在检索id而不是整个对象。尝试使用SELECT * ...,您将获得一个对象列表。