본문 바로가기

면접준비

JPA의 단일 엔티티 컬럼 매핑 방법에 대해서 설명해 주세요.

JPA에서 단일 엔티티의 컬럼을 매핑하는 방법은 여러 가지가 있습니다.

가장 기본적인 방법은 @Column 에너테이션을 사용하는 것입니다. 이 에너테이션을 엔티티 클래스의 필드나 getter 메서드 위에 붙이면 해당 속성을 데이터베이스 컬럼과 매핑할 수 있습니다.

@Column 에너테이션은 다양한 속성을 제공합니다. 예를 들어, name 속성을 사용하면 데이터베이스 컬럼명을 직접 지정할 수 있습니다. length 속성으로는 문자열 길이를 제한할 수 있고, nullable 속성으로는 null 값 허용 여부를 설정할 수 있습니다.

기본 키를 매핑할 때는 @Id 에너테이션을 사용합니다. 여기에 @GeneratedValue 에너테이션을 추가하면 자동으로 값을 생성할 수 있습니다.

(strategy 속성을 통해 생성 전략을 지정할 수 있는데, 주로 IDENTITY, SEQUENCE, TABLE 등의 전략을 사용합니다.

날짜 타입을 매핑할 때는 @Temporal 에너테이션을 사용합니다. TemporalType.DATE, TemporalType.TIME, TemporalType.TIMESTAMP 중 하나를 지정하여 날짜, 시간, 또는 둘 다를 매핑할 수 있습니다.)

 

큰 데이터를 다룰 때는 @Lob 에너테이션을 사용합니다. 문자열이면 CLOB으로, 바이트 배열이면 BLOB으로 매핑됩니다.

@Transient 에너테이션은 해당 필드를 데이터베이스에 매핑하지 않도록 합니다. 객체에만 임시로 어떤 값을 보관하고 싶을 때 유용합니다.

마지막으로, @Enumerated 에너테이션은 Java의 enum 타입을 데이터베이스 컬럼에 매핑할 때 사용합니다. EnumType.ORDINAL이나 EnumType.STRING을 지정하여 enum의 순서나 이름을 저장할 수 있습니다.

이렇게 다양한 에너테이션을 활용하면 엔티티의 필드를 데이터베이스 컬럼과 세밀하게 매핑할 있습니다. 상황에 따라 적절한 에너테이션을 선택하여 사용하는 것이 중요합니다.