为什么使用索引值控制台输出为null

来源:5-4 通过Map返回查询结果

星鸿

2017-08-14 20:26

@Test
public void testSelectClauseReturnMay()
{
    String hql = " select new map(s.name as name,s.tel as tel,s.address as address) from Seller s";
	
	Query query = session.createQuery(hql);
	List<Map> maps = query.list();
	for(Map map : maps) {
		System.out.println("name:"+map.get("0")
			+", tel:"+map.get("1")
			+", address:"+map.get("2"));
	}
	
	System.out.println("###########");
	//以别名获取信息
	for(Map map : maps) {
		System.out.println("name:"+map.get("name")
			+", tel:"+map.get("tel")
			+", address:"+map.get("address"));
	}
}
控制台输出:
name:null, tel:null, address:null
name:null, tel:null, address:null
name:null, tel:null, address:null
name:null, tel:null, address:null
###########
name:A服装店, tel:13000000000, address:中国北京××区
name:B数码店, tel:15800000000, address:中国浙江杭州市××区
name:C电器店, tel:13012341234, address:中国广东深圳市××区
name:D书店, tel:18600000000, address:中国陕西西安市××区

为什么用别名就有数据输出了?求解!!

写回答 关注

1回答

  • 不懂的少年
    2017-08-15 09:13:14
    已采纳

    因为Map里面只有key 和 value ,使用别名时会将key(即索引)改为别名,不再是0,1,2。取消掉别名即可按照原索引值(0,1,2)进行控制台输出

    星鸿

    非常感谢!

    2017-08-15 09:18:34

    共 1 条回复 >

HQL数据查询基础

使用HQL从数据库中找到你要的数据,掌握了使用Hibernate

41151 学习 · 90 问题

查看课程

相似问题