package com.rongyichuang.common.repository; import com.rongyichuang.common.entity.Media; 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 MediaRepository extends JpaRepository { /** * 根据目标类型和目标ID查询媒体列表 */ List findByTargetTypeAndTargetIdAndState(Integer targetType, Long targetId, Integer state); /** * 批量查询媒体列表 */ List findByTargetTypeAndTargetIdInAndState(Integer targetType, List targetIds, Integer state); /** * 批量统计媒体数量 */ @Query("SELECT m.targetId, COUNT(m) FROM Media m WHERE m.targetType = :targetType AND m.targetId IN :targetIds AND m.state = :state GROUP BY m.targetId") List countByTargetTypeAndTargetIdInAndState(@Param("targetType") Integer targetType, @Param("targetIds") List targetIds, @Param("state") Integer state); /** * 检查ID是否存在 */ boolean existsById(Long id); }