package de.flower.rmt.repository; import de.flower.rmt.model.db.entity.Club; import de.flower.rmt.model.db.entity.Team; import de.flower.rmt.model.db.entity.User; import de.flower.rmt.model.db.entity.event.Event; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import java.util.List; /** * @author flowerrrr */ public interface IUserRepo extends IRepository<User, Long> { User findByFullname(String candidate); User findByEmail(String username); @Query("select u from User u where u.objectStatus <> 1 and u.club = :club and u not in (select u2 from Player p join p.user u2 where p.team = :team) order by u.fullname asc") List<User> findAllUnassignedPlayers(@Param("team") Team team, @Param("club") Club club); @Query("select u from User u where u.objectStatus <> 1 and u.club = :club and u not in (select u2 from Invitation i join i.user u2 where i.event = :event) order by u.fullname asc") List<User> findAllUninvitedPlayers(@Param("event") Event event, @Param("club") Club club); // @Query("select u from User u join u.players p where p.team = :team") // List<User> findAllByTeam(@Param("team") Team team); /** * Was too stupid to build this query with criteria api */ @Query("select distinct u from User u join fetch u.roles left join fetch u.players p left join fetch p.team where u.objectStatus <> 1 and u.club = :club order by u.fullname") List<User> findAllFetchTeams(@Param("club") Club club); }