package com.syzton.sunread.repository; import java.util.ArrayList; import org.joda.time.DateTime; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.querydsl.QueryDslPredicateExecutor; import org.springframework.data.repository.query.Param; import com.syzton.sunread.model.organization.Campus; import com.syzton.sunread.model.semester.Semester; public interface SemesterRepository extends JpaRepository<Semester,Long>,QueryDslPredicateExecutor<Semester>{ @Query("SELECT Distinct(s) FROM Semester s WHERE s.campus=(:campus) AND s.startTime<=(:time) AND s.endTime>(:time)") Semester findByTimeAndCampus(@Param("time")DateTime time,@Param("campus")Campus campus); @Query("SELECT Distinct(s) FROM Semester s WHERE s.campus=(:campus) AND s.startTime>=(:startTime) AND s.startTime<(:endTime) ORDER BY s.startTime DESC ") ArrayList<Semester> findByDuration(@Param("startTime")DateTime startTime,@Param("endTime")DateTime endTime,@Param("campus")Campus campus); Page<Semester> findByCampus(Campus campus, Pageable pageable); }