작성
·
801
1
답변 1
0
안녕하세요, cloverj0님! 질문 올려주셔서 감사합니다.
빠르게 답변드려 보도록 하겠습니다! 😊
[1. 유저 저장 - 31번째 줄에서 Exception이 나오는 이유]
그 이유는 코드를 보면 알 수 있습니다!
@Transactional
public void saveUser(UserCreateRequest request){
userRepository.save(new User(request.getName(), request.getAge()));
throw new IllegalArgumentException();
}
현재 작성해주신 부분에서 userRepository.save()
가 성공해 실제 유저가 잘 저장된다고 하더라도, 다음 코드에서 Exception을 throw 해주고 있기 때문에 무조건 Exception이 나오게 됩니다! 아마 트랜잭션 테스트 이후에 테스트 코드가 제거되지 않은 것 같습니다! 🙂
[2. 도서 대출 - 42번째 줄에서 Exception이 나오는 이유]
이번에는 42번째 줄에서 오류가 나고 있는데요! 이 부분은 orElseThrow에 걸린 것으로, 주어진 이름으로 저장된 책이 없기 때문인 것 같습니다! 이런 경우는 실제 DB를 확인해서 책 정보가 정말 존재하지 않는지, 알맞은 책 이름이 서비스 단으로 잘 넘어왔는지 확인해보시는게 좋습니다! 👍
[3. bookRepository 오류]
마지막으로 BookRepository
오류의 경우는, 현재 작성해주신 BookRepository
가 BookMySQLRepository
와 BookMemoryRepository
로 나누어져 있고, findByName 이라는 함수가 만들어져 있지 않기 때문으로 보입니다!! BookRepository
와 BookMySQLRepository
는 스프링 컨테이너의 장점을 설명드리기 위해 잠깐 작성했던 코드라서, 실제 도서 대출 기능과 관련한 코드를 작성하실 때는 UserRepository
처럼 Repository를 만들어보시면 좋을 것 같아요!!
(이 부분이 어려우시다면, 완성 버전 코드를 참고하셔도 좋습니다! 🙂)
답변이 도움이 되었으면 좋겠습니다. 감사합니다! 🙏
안녕하세요 cloverj0님! 말씀해주신 book 이름이 넘어온다는 것은 "HTTP 요청"에서 책 이름이 들어 있다는 것이고, 현재 에러가 나는 부분은 "DB"에 책이 없다는 것이기 때문에 2번에서 말씀드렸던것처럼 실제 DB를 확인해보셔야 할 것 같습니다!
또한, findByName
에 대해 형변환 오류가 어떻게 나는지 알려주실 수 있을까요?! 😊
우선 보내주신 스크린샷 상으로는 BookRepository
에서 findByName
함수가 Book
을 반환하고 있지 않다는 에러가 나오고 있습니다!
안녕하세요!
db에 book이 저장되지 않고 있는데, 혹시 어디를 확인해 봐야 하는지 알려주실 수 있으실까요?
이미지와 같이 필요 타입이 : Book 이고 사용된 타입이 Object 라고 나옵니다. 그래서 밑에 표현식을 ~으로 형 변화하라고 오류가 나옵니다.
혹시
Optional<Object> 였는데 Optional<Book>으로 수정하면 될까요?
안녕하세요!! 😊
[1. book 테이블에 데이터 저장]
book 테이블에 데이터가 저장되어 있지 않은 부분은, <30강. 책 생성 API 개발하기> 부분을 봐주시면 되겠습니다! 👍
책 데이터가 데이터베이스에 있어야 대출을 할 수 있다고 생각해주시면 되겠습니다.
[2. Object와 Book]
넵넵 맞습니다! 만약 bookRepository.findByName(...) 에서 사용된 BookRepository가 보내주신 인터페이스라면, Optional<Object>
대신 Optional<Book>
혹은 Book
을 사용하시면 되실거에요! 강의에서 제공해드리고 있는 '완성 버전 코드'를 참고해서 비교해 보셔도 도움 될 것 같습니다!
끝까지 꼭 해결해보셨으면 좋겠습니다~ 감사합니다!! 🙇🙇
2번의 경우에는 3번째 이미지를 보시면 콘솔 부분에 book 이름이 넘어오는 것이 확인 됩니다ㅠㅠ
3번의 경우에는 com.group.libraryapp.domain.book.BookRepository; 이 경로 자바 파일에 들어가면 findByName 이 있는데 계속 형 변환 하라고 오류가 나옵니다.
대체 뭐가 문제일까요ㅠㅠ