inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

31강. 대출 기능 개발하기

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

628

황인태

작성한 질문수 4

2

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

java spring aws mysql spring-boot jpa

답변 1

0

최태현

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

결론부터 말씀드리자면, 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로 할지~ 설정할 수 있다! 정도만 기억하셔도 충분합니다!

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

감사합니다. 🙏🙏

패키지 구분에 대해 궁금한게 있습니다

0

25

2

리액트 관련 질문이 있습니다.

0

64

2

스프링부트 버전

0

76

2

7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.

0

59

2

33강. UserLoanHistory의 관계성에 대한 질문

1

56

2

Java JDK 버전 문의의 건

0

135

2

ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.

0

90

3

h2 console 접속했을 테이블 질문

1

66

1

ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨

0

79

2

15강. updateUser() 질문

0

56

2

깃허브 질

0

84

2

여기까지 다 끝냈다고 하셨는데

0

79

2

왜안될까요

0

72

2

MySQL 창이안ㄴ뜹니다

0

59

2

포스트맨

0

52

1

spring 개념적인 질문

0

71

2

인텔리제이 샘플코드 실행 안됨 오류

0

141

2

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

0

86

1

마이그레이션 오류입니다.

0

175

3

Whitelabel Error Page 오류가 났습니다.

0

166

2

안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ

1

94

3

궁금한게 있습니다.

0

60

2

DTO 관련

0

70

2

궁금한게 있습니다!

0

69

2