인프런 커뮤니티 질문&답변

황인태님의 프로필 이미지

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

31강. 대출 기능 개발하기

@column 어노테이션 관련하여 질문드립니다.

23.03.05 18:10 작성

·

428

2

 안녕하세요 강사님. 이번 강의에서는 UserLoanHistory 클래스를 @Entity로 사용하는데요, userId, bookName 등 변수에 @column 어노테이션을 붙이지 않은 것을 확인할 수 있었습니다. 저번에 강사님께서 column 어노테이션이 없으면 변수명과 동일한 db 필드에 매핑된다고 하셨습니다. 이번강의에서 코드가 정상적으로 동작하는데 column 어노테이션이 없을때 자바의 camel case 변수가 db의 snake 형태의 이름으로 자동으로 변환되어 쿼리문이 실행되는 건지 궁금합니다.

답변 1

0

최태현님의 프로필 이미지
최태현
지식공유자

2023. 03. 06. 19:39

안녕하세요! 좋은 질문 감사드립니다!! 😊

결론부터 말씀드리자면, Spring Boot를 JPA와 함께 사용할 때는 Entity 객체에 있는 camelCase 변수 이름을 snake_case로 자동 변경해주게 됩니다!

image왼쪽의 profile을 이용해 (테이블이 자동으로 만들어질 수 있게끔 spring.jpa.hibernate.ddl-auto를 create-drop으로 설정해두었습니다!) 테이블을 자동으로 만들어보았는데요!

오른쪽에 보이는 것처럼 snake_case로 column name이 변경되어 있습니다. 테이블 이름 역시 snake case로 변경되어 있죠!

 

이런 기능은 설정을 통해 변경할 수도 있습니다. "jpa naming strategy" 라는 키워드로 검색해보시면 다양한 자료를 찾아보실 수 있는데요! https://nefertirii.github.io/jpa/hibernate-naming-strategies/ 글이 잘 정리되어 있는 것 같아 공유드립니다!

내용이 약간 어려우실 수도 있는데, JPA가 테이블이나 테이블 칼럼의 이름을 camelCase로 할지~ snake_case로 할지~ 설정할 수 있다! 정도만 기억하셔도 충분합니다!

혹시나 또 궁금한 점 있으시면 편하게 질문 남겨 주세요!

감사합니다. 🙏🙏