[Spring-Boot] 쿼리메서드 사용 시 주의점 및 네이밍 방법
2023. 8. 20. 21:20ㆍ프로그래밍/웹 개발
기존에는 직접 sql 문을 작성해 쿼리문을 날리곤 했었지만 spring-boot로 프로젝트를 진행함과 동시에 jpa를 사용하게 되면서 쿼리 메서드와 JPQL을 사용하게 됐다.
그러나 쿼리메서드 사용시 스네이크 케이스의 '_' 를 인식하지 못하는 탓인지 프로젝트를 실행할 때 계속 bean객체 생성에 실패하며 오류가 발생했다. Entity 클래스의 @Column으로 설정한 필드명들을 카멜케이스로 바꾼 후 다시 쿼리메서드의 이름을 카멜케이로 지정하니 오류가 해결됐다. 일반적으로 java에서는 카멜케이스를 사용할 것을 권장한다고는 한다.
현재는 팀 프로젝트가 많이 진행되지 않았기에 db의 필드명들을 모두 바꾸는 작업을 진행해줘도 되지만 만약 그렇게 하기 힘들 경우에는
@Query메서드를 이용해 JPQL을 사용하면 된다. @Query어노테이션이 붙은 메서드는 메서드 이름을 '쿼리 메서드'로 인식하지 않는다. 따라서 필드명에 따른 쿼리 실행문 및 bean 객체 생성에서 에러가 발생하지 않는다.
결론 : JPA를 사용할 때 db 및 클래스 필드 네이밍은 스네이크 케이스보다는 카멜 케이스를 선택하고, 문제 발생시에는 쿼리 메서드 보다는 직접 쿼리문을 작성해(@Query) 사용하자.
'프로그래밍 > 웹 개발' 카테고리의 다른 글
Spring Boot 서버를 AWS에 배포하기(프리 티어/무료) (2) | 2023.10.23 |
---|---|
Ubuntu Linux Server에서 apache Tomcat을 이용해 웹 띄우기 (0) | 2023.10.16 |
[Spring-Boot] gradle 프로젝트 리소스 파일 수정 후 변경사항 적용 안되는 문제 해결 (0) | 2023.08.19 |
Intellij로 spring boot 프로젝트 설치부터 생성까지 (0) | 2023.08.17 |
[Servlet] getContextPath()와 getServletContext()의 차이 및 사용방법 (0) | 2023.07.25 |