У меня есть пакетный процесс, который сохраняет 1000000 записей по одной. Каждая запись имеет свои дочерние таблицы. Я использую Spring 2.5.6, Hibernate и JPA для этого. Но через час уходит из памяти. Кто-нибудь может подсказать, что может быть не так в моем приложении?
Вот код:
Public void processFeeds(List<Objects> feeds){
for(Feed feed : feeds){
Feed feed=getDAOMainFeedService().persist(feed);
//Saving the child information
if(feed.getID()>0) {
for(Address address : feeds.getAddress()){
getDAOAddressService().persist(feed.getID,address);
}
for(PersonalInfo pi: feeds.getPersonalInfo){
getDAOPIService().persist(feed.getID,pi);
}
}
}
}
//service Class code:
public class MainFeedServiceDAOImpl extends JpaDaoSupport implements IVehYmmRevDAO
public Feed persist(Feed feed)
{
try
{
getJpaTemplate().persist(feed);
feed=getJpaTemplate().merge(feed);
getJpaTemplate().flush();
return feed;
}
catch (Exception exception)
{
logger.error("Persit failed",
exception);
throw new DatabaseServiceException(
"Persit failed", exception);
}
}
}
Другие классы DAO также имеют ту же реализацию MainFeedServiceDAOImpl, которая внедряется с помощью Spring в слой службы базы данных выше. Пожалуйста, дайте несколько предложений.