728x90
5.1 데이터 조회 과정
1. 사용자가 데이터 조회 요청을 웹페이지에서 url 요청을 보냄
2. 서버의 컨트롤러가 요청하는 데이터 정보를 리파지터리에 전달
3. 리파지터리에서 DB에 데이터 조회 요청
4. DB에서 해당 데이터를 찾아 엔티티로 반환
5. 모델을 통하여 엔티티가 뷰 템플릿으로 전환
6. 뷰 페이지가 사용자 화면에 출력됨
* 기본 생성자(매개변수가 아무것도 없는 생성자) 롬복 어노테이션 : @NoArgsConstructor
Trouble Shooting
문제 상황
java: incompatible types: java.lang.Long cannot be converted to java.lang.String
데이터 조회하는 show() 메서드에서 형변환 에러 발생함
해결 방안 (~ing)
일단 아무리 뒤져봐도 모르겠어서 string 타입으로 캐스팅 시켜뒀는데 id값이 string이라니,,, 말이 안된다.
스노우볼이 될 것 같아서 질문 게시판에도 글 남기긴 했다. 뒷챕터들 진행하다보면 나오려나...
+ 240805 추가
해결
질문 게시판에 멘토님께서 찾아주셨다!
왜 컨트롤러 엔티티만 뒤져보고 레파지토리를 안 봤지... 너무 단순하게 id 선언은 엔티티 안에서 했으므로 이 2가지만 봐서 못찾았던 것 같다.
// CrudRepository info
org. springframework. data. repository
@NoRepositoryBean
public interface CrudRepository<T, ID>
extends org. springframework. data. repository. Repository<T, ID>
ID 값을 주는 부분에 String을 줬으니 당연히 형변환 에러가 난다... CrudRepository는 엔티티를 생성, 조회, 삭제하는 인터페이스이기 때문에 관리 대상 엔티티의 대푯값 타입을 적는다. Article의 대푯값은 id이므로 id의 대푯값을 long으로 주어야 한다.
728x90
'코딩 자율학습단 > 학습 일지' 카테고리의 다른 글
[DAY 7] 게시판 CRUD : Update - form 태그에서 PATCH 메서드 이용하는 방법 / Lombok 인식 에러 고치기 (0) | 2024.08.07 |
---|---|
[DAY 6] 페이지 연결 - 링크와 리다이렉트 (0) | 2024.08.05 |
[DAY 4] DB 조회와 롬복을 통한 리팩터링 (0) | 2024.08.01 |
[DAY 3] 게시판 CRUD : Create (0) | 2024.07.31 |
[DAY 2] MVC 패턴 이해와 실습 (1) | 2024.07.30 |