개요
본 문서는 Java 백엔드 개발에서 ORM을 사용하여 Entity 자동 생성 시 Table 및 Column에 Comment를 추가하는 방법에 대한 가이드입니다.
문제
- 개발자는 주석을 통해 컬럼의 의미를 파악할 수 있지만, Data 담당자는 소스 코드를 직접 확인하거나 개발자에게 문의해야 하는 번거로움이 발생합니다.
- 이를 해결하기 위해 주석과 Column comment를 동시에 활용하고자 하는 경우, 프레임워크 의존성, 효율성 저하, 휴먼 에러 등의 문제가 발생할 수 있습니다.
해결책
- JPA 3.2에서 도입된
comment
속성을 사용하여 Table 및 Column에 Comment를 추가합니다. - Hibernate의
@Comment
어노테이션과 JPA 3.2의comment
속성을 함께 활용하여 향후 버전 업그레이드 시 자동 리팩토링을 가능하게 합니다.
핵심 내용
- JPA 3.2의
comment
속성
- JPA 3.2부터 Table 및 Column 어노테이션에
comment
속성이 추가되었습니다. - 이 속성을 사용하여 Table 및 Column에 대한 설명을 직접 지정할 수 있습니다.
- Hibernate
@Comment
어노테이션
- Hibernate에서 제공하는
@Comment
어노테이션을 사용하여 Column에 대한 설명을 추가할 수 있습니다. - JPA 3.2를 지원하지 않는 환경에서 유용합니다.
- 향후 버전 업그레이드를 위한 자동 리팩토링
- OpenRewrite와 같은 도구를 사용하여 Hibernate
@Comment
어노테이션을 JPA 3.2의comment
속성으로 자동 변환할 수 있습니다. - 향후 Spring Data JPA 및 Hibernate의 JPA 3.2 버전 지원 시 코드를 손쉽게 업그레이드할 수 있습니다.
코드 예시
JPA 3.1 + Hibernate
@Column
@Comment(value = "잠금 여부")
private boolean accountNonLocked = true;
JPA 3.2
@Column(comment = "잠금 여부")
private boolean accountNonLocked = true;
참고 자료
- Jakarta Persistence™ 3.2: https://projects.eclipse.org/projects/ee4j.jpa/releases/3.2
- Migrate to JPA 3.2: https://hibernate.atlassian.net/browse/HHH-17377
- OpenRewrite: https://docs.openrewrite.org/