hibernate多表查询出结果转化为实体类

在使用Hibernate进行多表查询后,通常会得到一个Object对象,但直接调用会报无法转化的错误。本文探讨如何将Object转换为对应的实体类,分享了一个封装的方法,通过遍历查询结果并按索引赋值来实现转化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hibernate多表查询出结果后得到一个object对象,想用对象调用时会报object无法转化错误

所以要将object转化为对象

不知道有没有更好的方法,知道的请告知

public List<ArticleContent> listToVO(List<Object> arlist){
		List<ArticleContent> list = new LinkedList<ArticleContent>();
		if(arlist != null && arlist.size() > 0){
			ArticleContent articleContent;
			for(int i = 0; i < arlist.size();i++){
				articleContent = new ArticleContent();
			     Object[] object = (Object[])arlist.get(i);
			     String idkey =  (String)object[0];
			     String articleName =  (String)object[1];
			     String isEnable =  (String)object[2];
			     String content =  (String)object[3];
			     String createDate =  (String)object[4];
			     String createName =  (String)object[5];
			     articleContent.setIdkey(idkey);
			     articleContent.setArticleName(articleName);
			     articleContent.setContent(content);
			     articleContent.setIsEnable(isEnable);
			     articleContent.setCreateDate(createDate);
			     articleContent.setCreateName(createName);
			     list.add(articleContent);
			}
		}
		return list;
	}

这是我封装的一个方法,首先遍历list查询结果,按下标取值

@SuppressWarnings("unchecked")
	public List<ArticleContent> selectArticleContentList(){
		String hql = "select a.idkey,a.articleName,a.isEnable,a.content,a.createDate,a.createName,"
				+ "(select m.menuName from MenuManage m where a.menuCode = m.menuCode)as menuName from ArticleContent a order by a.createDate DESC";
		List<Object> arlist = this.getSuperDao().find(hql);
		List<ArticleContent> list = new LinkedList<ArticleContent>();
		if(arlist != null && arlist.size() > 0){
			ArticleContent articleContent;
			for(int i = 0; i < arlist.size();i++){
				articleContent = new ArticleContent();
			     Object[] object = (Object[])arlist.get(i);
			     String idkey =  (String)object[0];
			     String articleName =  (String)object[1];
			     String isEnable =  (String)object[2];
			     String content =  (String)object[3];
			     String createDate =  (String)object[4];
			     String createName =  (String)object[5];
			     String menuName =  (String)object[6];
			     articleContent.setIdkey(idkey);
			     articleContent.setArticleName(articleName);
			     articleContent.setContent(content);
			     articleContent.setIsEnable(isEnable);
			     articleContent.setCreateDate(createDate);
			     articleContent.setCreateName(createName);
			     articleContent.setMenuName(menuName);
			     list.add(articleContent);
			}
		}
		return list;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值