Interface ProjectEventRepository

  • All Superinterfaces:
    org.springframework.data.repository.CrudRepository<ProjectEvent,​java.lang.Long>, IridaJpaRepository<ProjectEvent,​java.lang.Long>, org.springframework.data.jpa.repository.JpaSpecificationExecutor<ProjectEvent>, org.springframework.data.repository.PagingAndSortingRepository<ProjectEvent,​java.lang.Long>, org.springframework.data.repository.Repository<ProjectEvent,​java.lang.Long>, org.springframework.data.repository.history.RevisionRepository<ProjectEvent,​java.lang.Long,​java.lang.Integer>

    public interface ProjectEventRepository
    extends IridaJpaRepository<ProjectEvent,​java.lang.Long>
    Repository for storing events that occurred on a project
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String GET_EVENTS_FOR_USER
      Query to get events for the specified user
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      org.springframework.data.domain.Page<ProjectEvent> getAllProjectsEvents​(org.springframework.data.domain.Pageable pageable)
      Get the events for all projects
      org.springframework.data.domain.Page<ProjectEvent> getEventsForProject​(Project project, org.springframework.data.domain.Pageable pageable)
      Get the events for a given project
      org.springframework.data.domain.Page<ProjectEvent> getEventsForUser​(User user, org.springframework.data.domain.Pageable pageable)
      Get the events on all projects for a given user
      java.util.List<ProjectEvent> getEventsForUserAfterDate​(User user, java.util.Date startTime)
      Get all ProjectEvents for a given User that occurred after a given Date
      • Methods inherited from interface org.springframework.data.repository.CrudRepository

        count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findAll, findAllById, findById, save, saveAll
      • Methods inherited from interface org.springframework.data.jpa.repository.JpaSpecificationExecutor

        count, exists, findAll, findAll, findAll, findOne
      • Methods inherited from interface org.springframework.data.repository.PagingAndSortingRepository

        findAll, findAll
      • Methods inherited from interface org.springframework.data.repository.history.RevisionRepository

        findLastChangeRevision, findRevision, findRevisions, findRevisions
    • Field Detail

      • GET_EVENTS_FOR_USER

        static final java.lang.String GET_EVENTS_FOR_USER
        Query to get events for the specified user
        See Also:
        Constant Field Values
    • Method Detail

      • getEventsForProject

        @Query("FROM ProjectEvent e WHERE e.project=?1")
        org.springframework.data.domain.Page<ProjectEvent> getEventsForProject​(Project project,
                                                                               org.springframework.data.domain.Pageable pageable)
        Get the events for a given project
        Parameters:
        project - The project to get events for
        pageable - the page description for what we should load.
        Returns:
        A List of ProjectEvents
      • getAllProjectsEvents

        @Query("FROM ProjectEvent e")
        org.springframework.data.domain.Page<ProjectEvent> getAllProjectsEvents​(org.springframework.data.domain.Pageable pageable)
        Get the events for all projects
        Parameters:
        pageable - the page description for what we should load.
        Returns:
        A List of ProjectEvents
      • getEventsForUser

        @Query("SELECT e FROM ProjectEvent e INNER JOIN e.project as p WHERE ((p in (select puj.project from ProjectUserJoin puj where puj.user = :forUser)) or (p in (select ugpj.project from UserGroupJoin ugj, UserGroupProjectJoin ugpj where ugj.group = ugpj.userGroup and ugj.user = :forUser)))")
        org.springframework.data.domain.Page<ProjectEvent> getEventsForUser​(@Param("forUser")
                                                                            User user,
                                                                            org.springframework.data.domain.Pageable pageable)
        Get the events on all projects for a given user
        Parameters:
        user - The User to get events for
        pageable - the page description for what we should load.
        Returns:
        A List of ProjectEvents
      • getEventsForUserAfterDate

        @Query("SELECT e FROM ProjectEvent e INNER JOIN e.project as p WHERE ((p in (select puj.project from ProjectUserJoin puj where puj.user = :forUser)) or (p in (select ugpj.project from UserGroupJoin ugj, UserGroupProjectJoin ugpj where ugj.group = ugpj.userGroup and ugj.user = :forUser))) AND e.createdDate > :startTime")
        java.util.List<ProjectEvent> getEventsForUserAfterDate​(@Param("forUser")
                                                               User user,
                                                               @Param("startTime")
                                                               java.util.Date startTime)
        Get all ProjectEvents for a given User that occurred after a given Date
        Parameters:
        user - The User to get events for
        startTime - The Date to get events after
        Returns:
        a List of ProjectEvents