개발자

[Spring] 신고를 5번 이상 받은 아이디를 블랙리스트에 넣으려고 합니다..

2023년 02월 23일조회 293

코드는 아래와 같습니다 ㅠㅠ 레파지토리에서 findBy 메소드 말구, 이런 식으로 하려고 하는데 쿼리문도 틀렸고 @Query 밑에 int 값을 불러오고 싶은데 Integer 이런걸로 시작하면 오류가 나고 .. 일단 저렇게 써놨는데 어떻게 짜야할지 모르겠어서 질문드립니다 ㅠㅠ 조장님께 물어봤더니 count 개수를 받아와서 자바에서 처리하라고 해서요 ㅠ 코드좀 손 봐주시면 감사드리겠습니다!!

1@Entity
2@Getter
3@Setter
4@Table(name = "warn_board")
5public class WarnBoard {
67	@Id
8	@Column(name = "warn_id") //식별자
9	private Long id;
10	
11	@Column(name = "reporter_id") // 신고하는 사람의 아이디
12	private Long reporterId;
13	
14	@Column(name = "reported_id") // 신고를 받는 대상자의 아이디
15	private Long reportedId;
16	
17	@Column(name = "warn_type") // 신고 유형
18	private String warnType;
19	
20	@Column(name = "descripton")
21	private String description; //기타 설명(신고 사유)
22	
23	@ManyToOne
24	@JoinColumn(name = "user_id")
25	private UserInfo userInfo;
26}
27
28
29
30
31
32public interface WarnBoardRepository extends JpaRepository<WarnBoard, Long> {
33
34	@Query(value = "select count(*) from warn_board w where w.reported_id?1 >= 5", nativeQuery = true)
35	public WarnBoard warnedUser(int reportedId);
36	
37	
38}
이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

김대현님의 프로필 사진

(숙제나 과제는 스스로 하셔야 해요. ) 여러 방법이 있을 텐데, 일단 쿼리로는, 아래처럼, 동일 reported_id로 5건 이상의 레코드가 있는 경우를 뽑아서, 이 reported_id를 전부 블럭 처리하면 되긴 합니다. SELECT reported_id, count(*) FROM warn_board GROUP BY reported_id HAVING count(*) >= 5 쿼리 수준에서는 GROUP BY와 HAVING을 공부하시면 힌트가 될 거예요.

성현님의 프로필 사진

성현

작성자

이젠IT아카데미 웹 개발2023년 02월 23일

감사합니다 ㅠㅠ 사실 백엔드가 너무 어렵고 지금까지 해왔을 때 프론트 쪽이 더 적성에 맞는 것 같아서 이제 2주 남았는데 수료는 하고 프론트 공부를 할까 생각중이에요 ㅠ,, 학원에 와서 혼자 고민하고 찾아봐도 잘 모르겠어서 올렸네요 ㅠ ㅋㅋ 도와주셔서 감사해요 !

프레드윰님의 프로필 사진

윗분 말씀에 추가로 한다면 웨어절 아이디까지 추가되야해요

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!