lrj
2 天以前 c61d4fe27c97d2ecc907756aa571a4ef14a7b9b6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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<ActivityJudge, Long> {
 
    /**
     * 根据比赛ID查找所有评委关联
     */
    List<ActivityJudge> findByActivityId(Long activityId);
 
    /**
     * 根据比赛ID和阶段ID查找评委关联
     */
    List<ActivityJudge> 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<ActivityJudge> findByActivityIdAndJudgeId(Long activityId, Long judgeId);
}