package com.rongyichuang.carousel.repository; import com.rongyichuang.carousel.entity.Carousel; 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.repository.query.Param; import org.springframework.stereotype.Repository; import java.util.List; /** * 轮播图数据访问层 */ @Repository public interface CarouselRepository extends JpaRepository { /** * 根据标题模糊查询轮播图(分页) */ @Query("SELECT c FROM Carousel c WHERE (:title IS NULL OR c.title LIKE %:title%) ORDER BY c.sortOrder ASC, c.createTime DESC") Page findByTitleContaining(@Param("title") String title, Pageable pageable); /** * 获取播放列表(按播放顺序排序,取前5个) */ @Query(value = "SELECT c FROM Carousel c WHERE c.sortOrder IS NOT NULL ORDER BY c.sortOrder ASC") List findPlayList(Pageable pageable); /** * 查询所有轮播图(按播放顺序和创建时间排序) */ @Query("SELECT c FROM Carousel c ORDER BY c.sortOrder ASC, c.createTime DESC") List findAllOrderBySortOrder(); }