[Bug #1004] Fix bug LazyInitializationException of Calendars

FEA: ItEr74S04BugFixing
This commit is contained in:
Diego Pino Garcia 2011-04-20 12:01:38 +02:00
parent a8a9d3f4ec
commit 1f7a960f53
2 changed files with 28 additions and 1 deletions

View file

@ -21,6 +21,7 @@
package org.navalplanner.business.calendars.entities;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
@ -136,6 +137,10 @@ public class CalendarData extends IntegrationEntity {
return capacityPerDay.get(day.ordinal());
}
public Map<Integer, Capacity> getCapacityPerDay() {
return Collections.unmodifiableMap(capacityPerDay);
}
public void setCapacityAt(Days day, Capacity capacity) {
capacityPerDay.put(day.ordinal(), capacity);
}

View file

@ -25,6 +25,7 @@ import java.util.List;
import org.navalplanner.business.calendars.daos.IBaseCalendarDAO;
import org.navalplanner.business.calendars.entities.BaseCalendar;
import org.navalplanner.business.calendars.entities.CalendarData;
import org.navalplanner.business.planner.entities.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition;
@ -49,7 +50,28 @@ public class CalendarAllocationModel implements ICalendarAllocationModel {
@Override
@Transactional(readOnly = true)
public List<BaseCalendar> getBaseCalendars() {
return baseCalendarDAO.getBaseCalendars();
return initializeCalendars(baseCalendarDAO.getBaseCalendars());
}
private List<BaseCalendar> initializeCalendars(List<BaseCalendar> calendars) {
for (BaseCalendar each : calendars) {
baseCalendarDAO.reattach(each);
initializeCalendar(each);
}
return calendars;
}
public void initializeCalendar(BaseCalendar calendar) {
calendar.getCalendarAvailabilities().size();
calendar.getExceptions().size();
initializeCalendarData(calendar.getCalendarDataVersions());
}
private void initializeCalendarData(List<CalendarData> calendarData) {
calendarData.size();
for (CalendarData each: calendarData) {
each.getCapacityPerDay().size();
}
}
@Override