I am trying to iterate over a result set of 2million records, for a large bulk load and transformation into a new ODS. It appears that I am getting an OutOfMemoryException because the DefaultResultSetHandler is caching the object in the nestedResultObjects property. Is there some property I should set or statement/ method call I should be using that will allow me to process one line at a time and not have the nestedResultObjects store each object?
My goal: * Grab a row * Send it to be processed * Once processed, move on to the next row. Note: Once a row is processed I no longer need a tie back to the object. I have included the custom ResultHandler, the unit test and the configuration file. Please let me know if you need other information. package com.primetherapeutics.benplanmgr.entity.rxclaim; import org.apache.ibatis.executor.result.ResultContext; import org.apache.ibatis.executor.result.ResultHandler; import org.apache.log4j.Logger; /** * @author kjarnold * */ public class GroupEligibilityResultHandler implements ResultHandler { Logger logger = Logger.getLogger(GroupEligibilityResultHandler.class); int count = 0; public void handleResult(ResultContext context) { if(context.getResultObject() != null) { count++; logger.debug(count); } //context.stop(); } public int getCount() { return count; } } @Test public void getGroupElibibilitiesByResultHandler() { Map<String, String> parameterMap = new HashMap<String, String>(); parameterMap.put("gelThruDate", "1090101"); parameterMap.put("addDate", "1090911"); parameterMap.put("chgDate", "1090911"); parameterMap.put("planDate", "1090101"); try { GroupEligibilityResultHandler handler = new GroupEligibilityResultHandler(); session.select("com.primetherapeutics.benplanmgr.entity.rxclaim.data.GroupEligibilityMapper.getGroupEligibilities", parameterMap, handler); logger.debug(handler.getCount()); } finally { session.close(); } } Here are my mapping files: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd"> <configuration> <settings> <setting name="multipleResultSetsEnabled" value="false"/> <setting name="defaultExecutorType" value="BATCH"/> </settings> <mappers> <mapper resource="com/primetherapeutics/benplanmgr/entity/rxclaim/data/BenefitMaxSchedule.xml"/> <mapper resource="com/primetherapeutics/benplanmgr/entity/rxclaim/data/GroupEligibility.xml"/> </mappers> </configuration> -- View this message in context: http://www.nabble.com/ResultHandler---OutOfMemory-Exception-tp25442025p25442025.html Sent from the iBATIS - User - Java mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org For additional commands, e-mail: user-java-h...@ibatis.apache.org