为了账号安全,请及时绑定邮箱和手机立即绑定

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

@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 回答

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

2 回复 有任何疑惑可以回复我~
#1

星鸿 提问者

非常感谢!
2017-08-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信