Added another repository method + test

This commit is contained in:
BuildTools
2020-11-26 13:58:27 +01:00
parent 0130fb77e1
commit 2545a0e682
4 changed files with 35 additions and 10 deletions

View File

@ -1,7 +1,6 @@
package com.plannaplan.repositories;
import java.util.List;
import java.util.HashMap;
import java.util.Optional;
import com.plannaplan.entities.Groups;
@ -22,9 +21,10 @@ public interface GroupRepository extends JpaRepository<Groups, Long> {
@Query("SELECT COUNT(*) AS assinged_times FROM Assignment WHERE isPastAssignment=false GROUP BY group HAVING group_id=?1")
Optional<Number> getAssignedAmount(Long groupId);
// @Query("SELECT group, COUNT(*) AS assinged_times FROM Assignment WHERE
// isPastAssignment=false GROUP BY group HAVING group_id IN (:ids)")
@Query(nativeQuery = true, value = "SELECT group_id, COUNT(*) AS assinged_times FROM assignment WHERE is_past_assignment=0 GROUP BY group_id HAVING group_id IN (7,9,10,12)")
@Query("SELECT group, COUNT(*) AS assinged_times FROM Assignment a WHERE a.isPastAssignment=false GROUP BY a.group HAVING group_id IN (:ids)")
// @Query(nativeQuery = true, value = "SELECT group_id, COUNT(*) AS
// assinged_times FROM assignment WHERE is_past_assignment=0 GROUP BY group_id
// HAVING group_id IN (:ids)")
List<Object[]> getAssignedAmounts(@Param("ids") List<Long> groupIds);

View File

@ -56,15 +56,10 @@ public class GroupService {
public HashMap<Groups, Integer> getTakenPlaces(List<Groups> groups) {
HashMap<Groups, Integer> respoonse = new HashMap<>();
// groups.forEach(group -> {
// final Long id = group.getId();
// final Integer ammount =
// this.repo.getAssignedAmount(id).orElse(Integer.valueOf(0)).intValue();
// respoonse.put(group, ammount);
// });
List<Object[]> respoonse2 = this.repo.getAssignedAmounts(
groups.stream().filter(Objects::nonNull).map(Groups::getId).collect(Collectors.toList()));
return respoonse;
}
}