日期:2014-05-17  浏览次数:20680 次

多表连查的时候,list集合里还有一个集合,我想取出其中一个实体的属性该怎么办
HQL语句: Query query =session.createQuery("from News n,NewsType t where n.grade='未审核' and n.newsType.id=t.id and t.id="+id);

查询出的是两个实体 其实我只需要News实体 但不把NewsType 写上 条件加不上

断点的时候是这样的
list
  elementDate
  -[0]
  -[0] News  
  -[1] NewsType
  -[1]
  -[0] News
  -[1] NewsType

我是用struts2标签展示 这样的数据不知道该怎么写 所以我就在后台想转换一下
  List list = new ArrayList();
list =investService.doFindNewsByNewsType(news.getNewsType().getId());
for(int i=0;i<list.size();i++){
List list2 = (List)list.get(i); //取出集合 这步出错 说不能将Object转换为List
News news =(News)list2.get(0); //取出实体
newsList.add(news);
}

求解 帮忙啊

------解决方案--------------------
写成这样试试吧。

Query query =session.createQuery("select n from News n,NewsType t where n.grade='未审核' and n.newsType.id=t.id and t.id="+id);


------解决方案--------------------
Query query =session.createQuery("select new News() from News n,NewsType t where n.grade='未审核' and n.newsType.id=t.id and t.id="+id);

News news = (News)query.uniqueResult();