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의 순서나 이름을 저장할 수 있습니다.
이렇게 다양한 에너테이션을 활용하면 엔티티의 각 필드를 데이터베이스 컬럼과 세밀하게 매핑할 수 있습니다. 상황에 따라 적절한 에너테이션을 선택하여 사용하는 것이 중요합니다.
'면접준비' 카테고리의 다른 글
좋은 코드란 무엇인가? (0) | 2024.08.19 |
---|---|
JPA 엔티티 간 연관관계 매핑에 대해서 설명해 주세요. (0) | 2024.08.12 |
JPA의 영속성 컨텍스트에 대해서 설명해주세요. (0) | 2024.08.11 |
JPA에서 의미하는 Persist에 대해 설명해주세요. (0) | 2024.08.11 |
Spring Data JPA에서의 애그리거트와 애그리거트 루트에 대해서 설명해 주세요. (0) | 2024.08.11 |