본문 바로가기

전체 글60

Entity-Table 매핑 - 필드 매핑(@Temporal) @Temporal 타입은 Java의 날짜타입을 매핑할 때 사용한다 @Temporal 애너테이션의 옵션은 아래와 같이 존재한다 TemporalType.DATE - 날짜만 저장(Ex. 2023-01-01) TemporalType.TIME - 시간만 저장(Ex. 10:23:12) TemporalType.TIMESTAMP - 날짜와 시간을 저장(Ex. 2023-01-01 10:23:12) 사용 예는 아래와 같다 @Entity public class Member{ @Id private userId; @Temporal(value=TemporalType.DATE) private Date birthDay @Temporal(value=TemporalType.TIMESTAMP) private Date createdDate.. 2023. 2. 23.
Entity-Table 매핑 - 필드 매핑(@Enumerated) @Enumerated 타입은 Java의 Enum타입을 매핑할 때 사용한다 @Enumerated 애너테이션의 옵션은 아래와 같이 존재한다 EnumType.ORDINAL - enum 순서를 DB에 저장 EnumType.STRING - enum 이름을 DB에 저장 사용 예는 아래와 같다 public enum ProductType{ FOOD, BOOK } @Entity public class Product{ @Id private productId; @Enumerated(EnumType.STRING) private ProductType productType } @Enumerated 애너테이션의 옵션은 EnumType.STRING을 사용하는 게 좋다 왜냐면 어떠한 이유로 enum의 순서를 바꿀 경우, DB데이터가 .. 2023. 2. 23.
Entity-Table 매핑 - 필드 매핑(@Column) JPA에서는 Entity의 속성과 테이블의 컬럼의 매핑을 위해 다양한 옵션(애너테이션)을 지원하고 있다 JPA에서 지원하는 옵션은 다음과 같다 이번 페이지에서는 컬럼에 대한 옵션을 살펴보겠다 @Column name - 컬럼이름 insertable/updatable - 등록/수정 가능 여부 unique - unique 제약조건 columnDefinition - 컬럼에 대한 DDL을 직접 주는 옵션 ex) varchar(100) default ‘EMPTY' length - 문자열 길이 precision - 소수점을 포함한 전체 자릿 수 scale - 소수 자리수 위 옵션들은 아래와 같이 Entity의 속성위에 @Column 애너테이션을 붙여서 설정할 수 있다 @Entity class Report{ @Id p.. 2023. 2. 23.
스키마 자동생성 옵션 JPA에서는 테이블을 자동생성해주는 기능이 존재한다 자동생성옵션은 아래와 같다 스키마 자동생성 옵션 create 애플리케이션 시작 시에 기존 테이블을 Drop 한 뒤, 테이블을 생성 create-drop 애플리케이션 시작 시에 테이블을 생성한 뒤, 애플리케이션 종료 시에 테이블을 Drop update 테이블에 변경사항이 있다면 Update(컬럼추가, 제약조건 추가 등) 컬럼 삭제는 안 됨 validate 테이블과 엔티티 매핑정보가 일치한 지 검증 일치하지 않을 경우 에러 발생 none 아무동작 하지 않음 none 자체는 아무의미 없음 "asdl;kfj;asdkljfl;adksjfkl;j"와 같은 문자열을 입력한 거랑 동일함 운영환경 별 권장옵션 운영환경 권장옵션 개발 create, update 테스트 u.. 2023. 2. 14.