db컬럼 명과 class 멤버 명 통일성
98
작성자 없음
작성한 질문수 0
class Delivery {
private Date deliveryPlanDate;
@Column(name = "delivery_plan_date")
private Date planDate;
}
이럴땐 둘 중 어떤게 더 효율적인가요:?
답변 2
0
안녕하세요. minn hyo님, 공식 서포터즈 y2gcoder입니다.
제가 minn hyo님의 질문을 제대로 이해한 것인지는 모르겠으나,
기본적으로는 DB 컬럼을 따라간다.
DB 칼럼명이 다소 부적합해서 애플리케이션 단에서 수정이 필요하다면, @Column을 이용해서 매핑해준다.
방식으로 가는 것 같습니다. DB 칼럼명을 수정해주는게 엔티티가 깔끔해지겠지만, 해당 테이블에 대한 다른 의존성 체크, 사내 DB 컨벤션 등을 고려해야 한다면 저는 위의 방법을 추천하고 싶습니다! 특히 운영 중인 DB 테이블을 변경하기에는 아무래도 고려해야 할 요소가 많아지는 것 같습니다!
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
질문해 주신 내용은 JPA에서 엔티티 클래스의 필드와 데이터베이스 컬럼 이름의 명명 규칙에 관한 것입니다. 이러한 경우, 어떤 명명 규칙을 따르는 것이 좋을지에 대한 답변을 드리겠습니다.
일관성 있는 명명:
통상적으로는 클래스의 멤버 변수 이름과 데이터베이스 컬럼 이름을 최대한 비슷하게 유지해서 가독성을 높이는 것이 좋습니다.
만약 애플리케이션 전체적으로 통일된 규칙을 준수하는 것이 가능하다면, 일정한 규칙을 따르는 것이 유지보수에 유리합니다.
어노테이션 사용:
@Column(name = "실제 컬럼 명")처럼 사용하여 명확히 해두면, 초기에 클래스 설계 시 가독성이 떨어질 수 있지만, 데이터베이스로부터 데이터를 명확하게 매핑하는 데 도움을 줍니다.특히 컬럼명이 변경되거나, 여러 데이터베이스에 대한 지원을 고려해야 한다면 이 방법이 유리합니다.
선호되는 패턴:
많은 개발자들은 통상적으로 클래스의 필드 명을 CamelCase와 같이 변수명의 룰을 따르고, 데이터베이스 컬럼은 snake_case를 유지합니다. 따라서,
@Column어노테이션으로 명명 규칙을 조정하여 두 구조 간의 명명 일관성을 확보할 수 있습니다.
관련하여, 유사한 주제를 다룬 질문을 공유해드리겠습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
OrderServiceTest 상문주문 테스트 시 update 쿼리 문의
0
27
1
sdk 설정 오류
0
68
2
오탈자 - @Transactional
0
62
1
src/test/resources 테스트 경로 문제
0
56
1
상품 등록후 H2 db 출력 순서 바꿀 수 있나요?
0
70
1
MemberRepositoryTest 실행오류
0
90
1
boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)
1
195
2
강의 마지막 QueryDSL 사용 부분 질문있습니다
1
153
2
클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.
0
56
1
도메인 모델 패턴 vs 트랜잭션 스크립트 패턴
0
80
1
기본 생성자
0
67
1
h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.
0
107
1
멤버서비스테스트 부분에서 막힙니다.
0
174
4
실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?
0
124
1
초반에 h2 다운로드 과정 꼭 필요한가요?
0
129
2
자신 필드에도 get으로 접근하는 이유가 있을까요?
0
121
1
24분 27초 연관관계 편의 메서드 위치
0
118
1
단건 주문만 가능하게 한건 의도한 부분이신가요?
0
114
2
빌드 툴, Gradle
0
63
1
h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다
0
81
2
Repository에서 EntityManager 주입 방식 차이
0
97
1
롬복과 사용자 정의 setter 메서드
0
77
1
주문 목록 조회 fetch join 질문드립니다
0
91
1
dirty checking 질문드립니다.
0
86
1





