@Entity가 붙은 클래스는 JPA가 관리하게 되고 엔티티라고 부르고, JPA를 사용해서 테이블과 매핑할 클래스는 @Entity를 필수로 붙여 주어야 한다. 여기서 주의할 점은 다음과 같다.
속성: name

DDL을 애플리케이션 실행 시번에 자동 생성한다,
테이블 중심 —> 객체 중심
데이터베이스 방언을 활용해서 테이터베이스에 맞는 적절한 DDL을 생성한다.
이렇게 생성된 DDL은 개발 장비에서만 활용하고 운영에서는 활용을 잘 하지 않는다.
생성된 DDL은 운영서버에서는 사용하지 않거나, 적절히 다듬은 후 사용한다.

주의점
운영 장비에는 절대 create, create-drop, update 사용하면 안된다. (db없어지면 안되서)
개발 초기 단계는 create 또는 update
테스트 서버는 update 또는 validate
스테이징과 운연 서버는 validate또는 none

여기서 @Transient는 DB에 넣지 않고 메모리에서만 사용하고 싶을 때 사용한다.

@Column의 unique속성은 운영에서 사용하기 어려워 @Table(uniqueConstrints~)를 선호한다.

ORDINAL을 사용하게되면 enum을 수정하였을때, DB에서 이미 담겨있는 값과 헷갈릴 수 있다.


기본 키 매핑 방법으로는 @Id를 사용하여 직접 할당을 하게 된다. 자동 생성 방법은 다음과 같다.
IDENTITY 전략의 특징을 살펴보면, 기본 키 생성을 데이터베이스에 위임을 한다. 주로 MySQL, PostgreSQL, SQL Server, DB2에서 사용을 하며 JPA는 보통 트랜잭션 커밋 시점에 INSERT SQL 실행을 한다. AUTO_ INCREMENT는 데이터베이스에 INSERT SQL을 실행한 이후에 ID 값을 알 수 있으며,IDENTITY 전략은 em.persist() 시점에 즉시 INSERT SQL 실행하고 DB에서 식별자를 조회한다.
SEQUENCE 전략의 특징을 살펴보면, 데이터베이스 시퀀스는 유일한 값을 순서대로 생성하는 특별한
데이터베이스 오브젝트로 오라클, PostgreSQL, DB2, H2 데이터베이스에서 사용한다.

기본 키 매핑 방법으로는 @Id를 사용하여 직접 할당을 하게 된다. 자동 생성 방법은 다음과 같다.
IDENTITY 전략의 특징을 살펴보면, 기본 키 생성을 데이터베이스에 위임을 한다. 주로 MySQL, PostgreSQL, SQL Server, DB2에서 사용을 하며 JPA는 보통 트랜잭션 커밋 시점에 INSERT SQL 실행을 한다. AUTO_ INCREMENT는 데이터베이스에 INSERT SQL을 실행한 이후에 ID 값을 알 수 있으며,IDENTITY 전략은 em.persist() 시점에 즉시 INSERT SQL 실행하고 DB에서 식별자를 조회한다.
SEQUENCE 전략의 특징을 살펴보면, 데이터베이스 시퀀스는 유일한 값을 순서대로 생성하는 특별한
데이터베이스 오브젝트로 오라클, PostgreSQL, DB2, H2 데이터베이스에서 사용한다.