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

J LEE님의 프로필 이미지
J LEE

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

데이터베이스 스키마 자동 생성

16:25초 부터의 설명이 이해가 가지 않습니다.

작성

·

622

2

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

@Column에서 unique나 length제약조건을 거는것은 런타임에 영향을 주지 않는다 하시고 @Table에서 name을 사용해서 테이블 명을 바꾸는것은 런타임에 영향을 주신다고 하셧는데 둘의 차이를 이해하지 못하고 있습니다.

@Table의 name을 변경하는것이 인서트 쿼리나 업데이트 쿼리에 영향을 준다고 하셧는데 이 말 자체를 이해하지 못하고 있는 것 같습니다..

답변 2

2

안녕하세요, J LEE 님. 공식 서포터즈 y2gcoder 입니다.

해당 강의를 듣고 제가 이해한 바로는 @Column 에서 unique 나 length를 넣어주는 것은 DDL을 생성할 때만 영향을 주고, JPA가 동작하는 것과는 연관이 없다고 말씀하십니다.

JPA의 런타임 시 기능은 결국 DB와 연결하여 테이블에 Insert, Update, Delete 쿼리를 날리는 것과 관련이 있습니다. 그러한 점에서 봤을 때, @Table의 name 속성을 바꾸면 JPA는 해당 name에 있는 테이블명에 insert, update, delete 쿼리를 날리기 때문에 런타임 기능에 영향을 준다고 말씀해주신 것으로 보입니다.

반면에 @Column의 unique나 length 속성값들은 DDL 생성이 켜져있을 때, 처음 애플리케이션 실행 시에만 DDL에서 작동할 뿐, JPA의 기능을 활용하는 런타임에서는 사용하지 않는다는 의미에서 말씀하신 것으로 보입니다.

감사합니다.

1

안녕하세요 y2gcoder님 다름이 아니라 써주신 내용중
처음 애플리케이션 실행 시에만 DDL에서 작동할 뿐, JPA의 기능을 활용하는 런타임에서는 사용하지 않는다 이 부분에 궁금한 부분이 있어 댓글을 작성합니다. 그러면 @Column의 unique나 length 속성값을 사용하면 이러한 속성값들이 실제 DB에는 반영이 안되고 DDL에서만 적용이 되는건가요?

정확히는 @Column의 제약조건은 JPA 런타임 동작에는 영향을 미치지 않는다고 저는 이해하고 있습니다. 애플리케이션 실행 시 JPA 엔티티의 매핑 정보를 이용해 DB 테이블을 만들 때는 실제 DB에 반영이 되는 것이라 볼 수 있습니다!

J LEE님의 프로필 이미지
J LEE

작성한 질문수

질문하기