1. 문제 원인
" Inferred type 'S' for type parameter 'S' is not within its bound; should extend 'org.example.board.entity.BoardEntity' "
1.1 'S' 뭐냐?
JpaRepository 작성할 때 Entity 이름을 작성하는 부분에 Generic 타입으로 선언되어 있는데 이 부분을 스프링 부트에서는 'S'라고 말함.
1.2 should extend 'org.example.board.entity.BoardEntity' 는 뭐냐?
public interface BoardRepository extends JpaRepository<BoardEntity, Long> {
}
BoardRepository에서 extends 즉 상속 받을 때 Entity가 들어갈 제네릭이 'BoardEntity'의 실제 이름인, 'org.example.board.entity.BoardEntity' 이 아니라는 말. 근데 중요한건 BoardEntity 난 쓸건데,,?
1.3 그래서 진짜 원인 뭐임?
Repository를 선언할 때는 스프링 부트가 BoardEntity를 사용할 거라고 대기하고 있음 그런데 Repository를 사용하는 Service에서 메소드 매개변수에 BoardEntity가 아닌 DTO 넣으면 에러발생함.
즉, repository 말고 service 패키지에서 함수 매개변수로 boardDTO 넣어서 그럼,,,
오늘의 교훈 : service에서 매개변수 잘 넣자!
'Error' 카테고리의 다른 글
[Spring Boot] 스프링부트 3.4.0버전 Database driver: undefined/unknown 에러 로그, 테이블 생성 안됨 (0) | 2024.12.03 |
---|---|
[Git] failed to push some refs to~ 에러 (0) | 2024.10.11 |
인텔리제이 프로젝트 생성 : CreateProcess error=2, 지정된 파일을 찾을 수 없습니다. (0) | 2024.09.24 |