1. 程式人生 > >hibernate面對多表查詢返回裝載Object物件的list的處理辦法 (補16年12月)

hibernate面對多表查詢返回裝載Object物件的list的處理辦法 (補16年12月)

    涉及到多表查詢,使用的是原生sql語句,返回值是list,但list裝載的是Object物件,並不是實體物件,為了使用方便,添加了多表實體類,以下是關鍵程式碼

    pageResearch() 是分頁查詢方法,limit是每頁顯示記錄數,begin是第幾頁

		List rockList = rockManager.pageResearch(hqlString.toString(), begin, limit);
		List<RockObjectValue> rockData = new LinkedList();
		if(rockList !=null && rockList.size() > 0){		
			for(int i = 0; i < rockList.size(); i++ ){
				Object[] object = (Object[])rockList.get(i);
				String code = (String)object[0];
				Date monitordate = (Date)object[1];
				Date creatdate = (Date)object[2];
				double value = (double)object[3];
				double sinkvalue = (double)object[4];
				double coraccuvalue = (double)object[5];
				double sinkspeed = (double)object[6];				
				int interval = (int)object[7];
				String testperson = (String)object[8];
				
				RockObjectValue rockObjectValue = new RockObjectValue();
				rockObjectValue.setCode(code);
				rockObjectValue.setMonitordate(monitordate);
				rockObjectValue.setCreatdate(creatdate);
				rockObjectValue.setValue(value);
				rockObjectValue.setSinkvalue(sinkvalue);
				rockObjectValue.setCoraccuvalue(coraccuvalue);
				rockObjectValue.setSinkspeed(sinkspeed);
				rockObjectValue.setInterval(interval);
				rockObjectValue.setTestperson(testperson);
				rockData.add(rockObjectValue);
			}				
		}