@Override public EarlyAlert save(@NotNull final EarlyAlert obj) throws ObjectNotFoundException { final EarlyAlert current = getDao().get(obj.getId()); current.setCourseName(obj.getCourseName()); current.setCourseTitle(obj.getCourseTitle()); current.setEmailCC(obj.getEmailCC()); current.setCampus(obj.getCampus()); current.setEarlyAlertReasonOtherDescription(obj.getEarlyAlertReasonOtherDescription()); current.setComment(obj.getComment()); current.setClosedDate(obj.getClosedDate()); current.setClosedById(obj.getClosedById()); if (obj.getPerson() == null) { current.setPerson(null); } else { current.setPerson(personService.get(obj.getPerson().getId())); } final Set<EarlyAlertReason> earlyAlertReasons = new HashSet<EarlyAlertReason>(); if (obj.getEarlyAlertReasonIds() != null) { for (final EarlyAlertReason reason : obj.getEarlyAlertReasonIds()) { earlyAlertReasons.add(earlyAlertReasonService.load(reason.getId())); } } current.setEarlyAlertReasonIds(earlyAlertReasons); final Set<EarlyAlertSuggestion> earlyAlertSuggestions = new HashSet<EarlyAlertSuggestion>(); if (obj.getEarlyAlertSuggestionIds() != null) { for (final EarlyAlertSuggestion reason : obj.getEarlyAlertSuggestionIds()) { earlyAlertSuggestions.add(earlyAlertSuggestionService.load(reason.getId())); } } current.setEarlyAlertSuggestionIds(earlyAlertSuggestions); return getDao().save(current); }