Skip to content

Commit

Permalink
#325 convert eventRepository.findByOrganizationId in eventRepository.…
Browse files Browse the repository at this point in the history
…findByOrganizationIds -> remove n+1 call
  • Loading branch information
syjer committed Aug 14, 2017
1 parent 75b769b commit ceb4e5a
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 10 deletions.
12 changes: 4 additions & 8 deletions src/main/java/alfio/manager/EventStatisticsManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import alfio.manager.user.UserManager;
import alfio.model.*;
import alfio.model.modification.TicketWithStatistic;
import alfio.model.user.Organization;
import alfio.repository.*;
import alfio.util.EventUtil;
import alfio.util.MonetaryUtil;
Expand All @@ -28,10 +29,7 @@
import org.springframework.stereotype.Component;

import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -73,10 +71,8 @@ public EventStatisticsManager(EventRepository eventRepository,
}

private List<Event> getAllEvents(String username) {
return userManager.findUserOrganizations(username)
.parallelStream()
.flatMap(o -> eventRepository.findByOrganizationId(o.getId()).stream())
.collect(Collectors.toList());
List<Integer> orgIds = userManager.findUserOrganizations(username).stream().map(Organization::getId).collect(toList());
return orgIds.isEmpty() ? Collections.emptyList() : eventRepository.findByOrganizationIds(orgIds);
}


Expand Down
5 changes: 3 additions & 2 deletions src/main/java/alfio/repository/EventRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

import java.math.BigDecimal;
import java.time.ZonedDateTime;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import java.util.Set;
Expand All @@ -46,8 +47,8 @@ public interface EventRepository {
@Query("select * from event order by start_ts asc")
List<Event> findAll();

@Query("select * from event where org_id = :organizationId")
List<Event> findByOrganizationId(@Bind("organizationId") int organizationId);
@Query("select * from event where org_id = in (:organizationIds)")
List<Event> findByOrganizationIds(@Bind("organizationIds") Collection<Integer> organizationIds);

@Query("insert into event(short_name, type, display_name, website_url, external_url, website_t_c_url, image_url, file_blob_id, location, latitude, longitude, start_ts, end_ts, time_zone, regular_price_cts, currency, available_seats, vat_included, vat, allowed_payment_proxies, private_key, org_id, locales, vat_status, src_price_cts, version, status) " +
"values(:shortName, :type, :displayName, :websiteUrl, :externalUrl, :termsUrl, :imageUrl, :fileBlobId, :location, :latitude, :longitude, :start_ts, :end_ts, :time_zone, 0, :currency, :available_seats, :vat_included, :vat, :paymentProxies, :privateKey, :organizationId, :locales, :vatStatus, :srcPriceCts, :version, :status)")
Expand Down

0 comments on commit ceb4e5a

Please sign in to comment.