I have year set of years-2013 to 2016.monthset like Jan-Dec. and i have to get data month wise from 10000 rows/records data But it gives java.lang.OutOfMemoryError: Java heap space . Help me whats wrong in below logic.
for (Integer year : yearSet) {
List<EtrendMonthYearModel> etrendMonthYearModelList = new ArrayList<EtrendMonthYearModel>();
for (Integer month : monthSet) {
for (String zip : zipSet) {
EtrendFilterBYModel etrendFilterBYModel = new EtrendFilterBYModel();
for (int i = 0; i < etrendMonthYearModel.size(); i++) {
EtrendMonthYearModel etrendMonthYearModelTemp = null;
if ((etrendMonthYearModel.get(i).geteTKeymy10() == (long)month)
&& (etrendMonthYearModel.get(i).geteTKeymy11() == year)
&& (etrendMonthYearModel.get(i).geteTKeymy1().equals(zip)))
{
etrendMonthYearModelTemp = new EtrendMonthYearModel();
etrendMonthYearModelTemp = etrendMonthYearModel.get(i);
etrendMonthYearModelList.add(etrendMonthYearModelTemp);
}
}
etrendFilterBYModel.setName(zip);
etrendFilterBYModel.setMonth(month);
etrendFilterBYModel.setLevel("ekeymy1");
etrendFilterBYModel.setYear(year);
String serializedObjList = "";
serializedObjList = encodeMonYear(etrendMonthYearModelList);
etrendFilterBYModel.setObjData(serializedObjList);
etrendFilterBYModelZipList.add(etrendFilterBYModel);
}
}
}
rowCount= 0;
Batch batchProcessZip = QueryBuilder.batch();
for (EtrendFilterBYModel etrendFilterBYModelZipTemp : etrendFilterBYModelZipList) {
Insert insert = QueryBuilder.insertInto("etrend_optimized_monthly");
insert.value("year",etrendFilterBYModelZipTemp.getYear());
insert.value("month",etrendFilterBYModelZipTemp.getMonth());
insert.value("level",etrendFilterBYModelZipTemp.getLevel());
insert.value("name",etrendFilterBYModelZipTemp.getName());
insert.value("objdata",etrendFilterBYModelZipTemp.getObjData());
batchProcessZip.add(insert);
rowCount++;
if(rowCount>1000)
{
cassandraTemplate.execute(batchProcessZip);
batchProcessZip = QueryBuilder.batch();
rowCount = 0;
}
}
cassandraTemplate.execute(batchProcessZip);