package com.rongyichuang.activity.repository; import com.rongyichuang.activity.entity.ActivityJudge; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; 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 ActivityJudgeRepository extends JpaRepository { /** * 根据比赛ID查找所有评委关联 */ List findByActivityId(Long activityId); /** * 根据比赛ID和阶段ID查找评委关联 */ List findByActivityIdAndStageId(Long activityId, Long stageId); /** * 根据比赛ID删除所有评委关联(软删除) */ @Modifying @Query("DELETE FROM ActivityJudge aj WHERE aj.activityId = :activityId") void deleteByActivityId(@Param("activityId") Long activityId); /** * 根据比赛ID和评委ID删除关联 * 由于约束现在是基于stage_id和judge_id,这个方法会删除该评委在该比赛下的所有关联 */ @Modifying @Query("DELETE FROM ActivityJudge aj WHERE aj.activityId = :activityId AND aj.judgeId = :judgeId") void deleteByActivityIdAndJudgeId(@Param("activityId") Long activityId, @Param("judgeId") Long judgeId); /** * 根据比赛ID和评委ID查找关联 */ List findByActivityIdAndJudgeId(Long activityId, Long judgeId); }