[4단원] 기본 키 직접 할당 전략
Uploaded by N2T
- 자바/JPA
- · 2023. 10. 22.
@Table 어노테이션 속성과 사용 방법1. @Table 속성 정리@Table은 엔터프라이즈 애플리케이션의 엔터티와 데이터베이스 테이블 매핑을 지정함.name:기능매핑할 테이블 이름 지정기본값엔티티 이름 사용catalog:기능catalog 기능이 있는 DB에서 catalog 매핑schema:기능schema 기능이 있는 DB에서 schema 매핑uniqueConstraints (DDL):기능: DDL 생성 시 유니크 제약조건 생성, 복합 유니크 제약조건 생성 가능. 스키마 자동 생성 시에만 사용2. 사용 예시@Entity @Table(name = "members", uniqueConstraints = {@UniqueConstraint(columnNames = {"username"})}) public cla..
스키마 자동 생성JPA 는 클래스의 매핑 정보와 데이터베이스 방언을 기반으로 데이터베이스 스키마를 자동으로 생성함데이터베이스별 SQL 문법과 기능을 정의설정프로퍼티에 설정spring.jpa.hibernate.ddl-auto어플 실행 시점에 DB 테이블을 자동으로 생성 가능spring.jpa.show-sql=true콘솔에 실행되는 DDL 을 출력가능hibernate.hbm2ddl.auto 속성create: 기존 테이블 삭제 후 새로 생성 (DROP + CREATE).create-drop: 애플리케이션 종료 시 생성한 DDL 제거 (DROP + CREATE + DROP).update: DB 테이블과 엔티티 매핑 정보 비교 후 변경 사항만 수정. validate: DB 테이블과 엔티티 매핑 정보 비교, 차이 ..
DDL 생성 기능과 제약조건 추가1. 필수 입력과 문자 길이 제약조건JPA에서는 @Column 어노테이션을 사용하여 엔티티의 필드에 대한 제약조건을 추가할 수 있음. 예를 들어, 회원 이름이 필수로 입력되어야 하며, 10자를 초과할 수 없다는 제약조건을 DDL에 추가할 수 있음.예제 코드@Entity @Table(name="MEMBER") public class Member { @Id @Column(name = "ID") private String id; @Column(name = "NAME", nullable = false, length = 10) private String username; // ... } 여기서 nullable = false로 지정하면 DDL에 not null 제약조건이 추가되고, ..
기본 키 Primary Key 매핑1. 기본 키 직접 할당JPA에서 @Id 어노테이션을 사용해 엔티티의 기본 키를 지정할 수 있습니다.기본 키를 직접 할당하는 방식은 어플 로직에서 기본 키 값을 지정해주는 방식입니다.예제@Entity public class Member { @Id @Column(name = "ID") private String id; // ... } 2. 데이터베이스 자동 생성 키 사용데이터베이스 기능, 예를 들어 오라클의 시퀀스 오브젝트나 MySQL의 AUTO_INCREMENT 기능을 사용해 자동으로 기본 키 값을 생성할 수 있습니다.3. JPA의 기본 키 생성 전략직접 할당애플리케이션에서 기본 키를 직접 할당IDENTITY데이터베이스에 기본 키 생성을 위임, 각 DBMS의 자동 증가 ..
Uploaded by N2T
@Entity 어노테이션 속성name기능JPA 에서 사용할 엔티티의 이름을 지정함기본값설정하지 않으면 클래스의 이름을 그대로 사용함다른 패키지에 이름이 값은 엔티티 클래스가 존재한다면, 이름을 지정해 충돌방지필적용시 주의기본 생성자 필수파라미터가 없는 public 또는 protected 생성자가 반드시 있어야 한다.JPA 는 엔티티 객체를 생성시 기본 생성자를 사용한다.final 클래스, enum interface , inner 클래스 사용 불가능final 필드 금지저장할 필드에 final 금지JPA 는 런타임에 엔티티 객체의 프로퍼티를 변경할 수 있어야 함 Uploaded by N2T