Ejemplo n.º 1
0
  /** {@inheritDoc} */
  @Transactional(rollbackFor = {Throwable.class})
  public void deleteSavedSearch(Long userProfileId, Long savedSearchId) {

    UserProfile userProfile =
        (UserProfile)
            DataAccessUtils.uniqueResult(
                hibernateTemplate.findByCriteria(
                    DetachedCriteria.forClass(UserProfile.class)
                        .add(Restrictions.eq("ID", userProfileId))
                        .setFetchMode("savedSearches", FetchMode.JOIN)
                        .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)));
    List<SavedSearch> savedSearches = userProfile.getSavedSearches();
    for (Iterator<SavedSearch> it = savedSearches.iterator(); it.hasNext(); ) {
      SavedSearch savedSearch = it.next();
      if (savedSearch.getID().equals(savedSearchId)) {
        it.remove();
      }
    }
    hibernateTemplate.update(userProfile);
  }