감사쟁이야
감사쟁이의 성장기록
감사쟁이야
  • 분류 전체보기 (130)
    • Java-Spring (0)
    • ComputerScience (0)
    • Project (64)
      • TIL, WIL (57)
      • Project Retrospect (7)
    • Problem Solving (63)
    • Book Review (1)
    • Culture & Discovery (0)
    • Daily Log (2)

블로그 메뉴

  • 홈
  • 깃허브
  • 방명록
hELLO · Designed By 정상우.
감사쟁이야

감사쟁이의 성장기록

TIL(51) JPA 관련 에러 고치기
Project/TIL, WIL

TIL(51) JPA 관련 에러 고치기

2021. 12. 27. 23:05

Facts

✅  til repository 수정

✅  til_search 기능 부분 bug fix

 

Findings

🤔  1차 Error

문제점

처음 JpaRepository에서 쿼리를 요청했을 때, 데이터를 가져와주지 않고 에러가 났다. 🥲

 

문제 원인

원인을 찾아본 결과, findBy{Column명}을 해줄 때, 기본적으로 column명은 _가 없어야 한다.

 

해결

그러므로, Entity에 있는 테이블의 컬럼명들을 다 snake case에서 cammel case로 변경해주었다.

위의 방법 외에도 해결방법이 없는지 구글링한 결과,
hibernate 설정 파일에서 CamelCase → SnakeCase 변환을 위해선 별도로 설정을 해야 한다는 것을 알게 되었다.

 

🤔  2차 Error

문제점

TilView가 True이거나 UserId가 자기자신이면, 해당 TIL 데이터들을 가져오게끔 처리를 해주려고 했다.
처음에는 findByUserOr(UserIdAndTilView을) 해주었으나, 에러가 났다.

 

문제 원인

JPA 문법에 맞지 않는 명령어이니 에러가 날 수밖에 없는 코드 였다.

 

해결

조금 머리를 굴려본 결과 findBy A( B and C)를 하고 싶다면, findBy A and B or B and C로 하면 되었다.

Final Code

 

Feelings

  • JPA 장점에 대해 다시 생각해보게 되었다.
    일일이 쿼리문이 안 적어줘도 되기에, 필드가 변경이 되더라도
    모든 SQL을 수정할 필요 없이 필드만 변경해주면 된다. 유지보수가 좋다! 👍🏻
  • 아무 설정없이 컬럼명을 snake case로 하면, 에러가 나는데, 이에 대한 원인을 제대로 찾지 않아,
    일일이 쿼리문을 달았다.
    생각해보니 쿼리문을 다 달면 JPA 장점이 다 사라져 해결 방법을 찾아 cammel case로 변경해주었다.

    ⭐️ 기술을 왜 사용하는지 생각하면서 써야한다! 
    ⭐️ 트러블 슈팅할 때, 에러의 원인을 명확히 파악하고 문제 정의를 명확히 해야 한다!
         이를 위해, 현재 내가 아는 것과 모른 것이 무엇인지 정확히 인지하는 습관을 갖자!

'Project > TIL, WIL' 카테고리의 다른 글

TIL(53) JPA 연관관계 에러 고치기  (0) 2021.12.27
TIL(52) Elasticbeanstalk에 HTTPS를 연결  (0) 2021.12.27
TIL(50) S3를 이용한 사진 업로드 기능 속도 개선하기  (0) 2021.12.27
TIL(49) 21-12-09: CORS 에러 해결하기  (0) 2021.12.27
TIL(48) 21-12-08: API 문서 자동화와 테스트 코드 작성하기 (Using RestDoc)  (0) 2021.12.27
    'Project/TIL, WIL' 카테고리의 다른 글
    • TIL(53) JPA 연관관계 에러 고치기
    • TIL(52) Elasticbeanstalk에 HTTPS를 연결
    • TIL(50) S3를 이용한 사진 업로드 기능 속도 개선하기
    • TIL(49) 21-12-09: CORS 에러 해결하기
    감사쟁이야
    감사쟁이야
    sunzero0116@gmail.com

    티스토리툴바