hibernate 使用问题 2

使用hiberate 原生查询

 

public List<SearchHouse2> findPageByDistance(int page, int size,double lon,double lat) {
//		String sql = "select a4.aid,a4.address,a4.touzishang, a4.jdjj, a15.thumb,a15.subject  FROM cms_archives15  as a15 join cms_archives_4 as a4 where a15.aid=a4.aid order by a15.aid DESC";	
	String	sql="SELECT * ,getDistance("+lon+",building.dt_0,"+lat+",dt_1) as dis from (select a4.aid,a4.address,a4.touzishang, a4.jdjj, a15.thumb,a15.subject,a15.dt_0,a15.dt_1 FROM cms_archives15  as a15 join cms_archives_4 as a4 where a15.aid=a4.aid ) as building ORDER BY dis ASC";
		System.out.println(sql);
		List list = this.getSession().createSQLQuery(sql)
				.addScalar("aid", Hibernate.INTEGER)
				.addScalar("address", Hibernate.STRING)
				.addScalar("touzishang", Hibernate.STRING)
				.addScalar("jdjj", Hibernate.FLOAT)
				.addScalar("thumb", Hibernate.STRING)
				.addScalar("subject", Hibernate.STRING)
				.addScalar("dis", Hibernate.DOUBLE)
				.setFirstResult((page - 1) * size).setMaxResults(size).list();
		ArrayList<SearchHouse2> ssh = new ArrayList<SearchHouse2>();
		for (int i = 0; i < list.size(); i++) {
			SearchHouse2 sh = new SearchHouse2();
			Object[] temp = (Object[]) list.get(i);
			System.out.println(temp);
			System.out.println(temp.length);
			System.out.println(temp.toString());
			sh.setAid((Integer) temp[0]);
			sh.setAddress((String) temp[1]);
			sh.setTouzishang((String) temp[2]);
			sh.setJdjj((Float) temp[3]);
			sh.setThumb((String) temp[4]);
			sh.setSubject((String) temp[5]);
			sh.setDis((Double)temp[6]);
			ssh.add(sh);
		}
		return ssh;
	}


用navicat查到的结果:

 

sh.setDis((Double)temp[6]); 问题,之前是把6用的8, 提示数组     越界

虽然查的条数是8条的,但.addScalar("dis", Hibernate.DOUBLE) 只有6 所以会报错

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值