JAVA分批查询,并返回最新记录
public List<SichuanMobileSynchro> queryByStudentIds(List<Long> schoolIds){
List<SichuanMobileSynchro> list = new ArrayList<>();
if(schoolIds.size() == 0) {
return list;
}else{
List<Long> tempIds = new ArrayList<>();
for(int i=0;i<schoolIds.size();i++) {
tempIds.add(schoolIds.get(i));
if(tempIds.size() == 50 || i== schoolIds.size()-1 ) {
String tempIdsString = tempIds.toString().replace("[","").replace("]", "");
String sql = " SELECT * FROM sichuan_mobile_synchro WHERE school_id in(" +tempIdsString+ ") ORDER BY id DESC ";
SQLQuery query = sichuanMobileSynchroDao.getSession().createSQLQuery(sql);
query.addEntity(SichuanMobileSynchro.class);
List<SichuanMobileSynchro> temp = query.list();
list.addAll(temp);
tempIds = new ArrayList<>();
}
}
Set<Long> newRecord = new HashSet<>();
List<SichuanMobileSynchro> newList = new ArrayList<>();
for(SichuanMobileSynchro obj : list) {
if(newRecord.add(obj.getSchoolId())) {
newList.add(obj);
}
}
return newList;
}
}