1. Entity
-1. entity의 생성 = 테이블의 생성
-- 엔티티 이름은 @Entity @Table(name="테이블") 정할 수 있다.
-- 엔티티 이름은 @Entitiy(name="Mebmer") 와 같이 정할 수도 있지만
-- 정하지 않으면 클래스 이름이 Entitiy 클래스의 이름이 된다.
-2. 칼럼값들의 생성
--1. @Id : pk와 매칭이되는 필수 어노테이션이다.
--2. @GeneratedValue: @Id 가 선언된 필드에 대한 값을 자동 생성한다.
-- 자동 생성 패턴은 다음과 같이 설정이 가능하다.
@GeneratedValue(strategy="GenerationType.패턴")
-- 패턴 유형
1. TABLE : db 테이블을 사용한 pk 값 생성, pk 값 생성을 위한 별도의 테이블 설정이 필요하다.
2. SEQUENCE : 오라클 같은 squence 지원 하는 db에서 사용하는 auto increment
3. IDENTITY: mysql 같은 db에서 사용하는 auto increment
4. AUTO : 기본값이며, db에 맞게 자동 생성
--3. @Temporal(TemporalType.DATE| TIME| TIMESTAMP)
:날짜 타입의 변수에 매핑할 때 사용한다. DATE,TIME, TIMESTAMP 세가지 종류가 있다.
--- DATE : 날짜
--- TIME: 시간
--- TIMESTAMP: 날짜 + 시간
--4. @Column : 일반적으로 엔티티 클래스 멤버 변수와 칼럼이 다를때 사용한다.
--- 어노테이션을 생략하면 기본 변수 이름과 동일한 칼럼 이름에 매핑 된다.
--- 속성들
1. name :칼럼 이름을 지정
2. unique: 제약 조건 추가
3. insertable : 입력 sql 명령어 자동 생성시 현재 칼럼 포함 여부
4. updatable : 수정 sql 명령어 자동 생성시 현재 칼럼 포함 여부
5. columnDefinition : 현재 칼럼 DDL 직접 설정
6. length : 칼럼 길이 지정 , 기본값은 255
7. precision : 전체 자릿수 지정
8. scale : 소수점 자릿수 지정
--5. @Transient : 매핑에서 제외 시킴
2. JPA API 사용
-- 1. Entity Manager
-- JPA 에서 CRUD 를 처리하기 위해서 EntityManager 객체를 생성해야 된다.
-- 그리고 이 EntityManager는 EntityManagerFactory 에서 부터 생성된다.
-- EntityMangerFactory는 Persistence 객체가 생성한다.
-- 이때 Persistence 객체는 persistence-unit의 정보가 있는 설정을 참조한다.
--2. api 종류
--1. persist : 엔티티를 만든다. (=INSERT)
--2. merge : (=UPDATE)
--3. remove: (=DELETE)
--4. find(엔티티 클래스 , 엔티티의 pk): (=SELECT ONE)
--1. createQuery(쿼리문, 리스트의 결과를 담을 객체): JPQL 에 해당하는 엔티티 목록의 검색 (=SELECT LIST)
3. JPQL -- JPA 도 sql문이 있다.
select , update , delete 문 은 있지만 insert문은 없다.
-1. crud
--1. select 문
--- select m FROM Member As m WHere m.name="이름"
--- jpql 키워드는 대소문자를 구별하지 않는다.
--- 하지만 여기서 Memeber와 같은 엔티티 클래스들은 대소문자를 구별한다.
-- 엔티티 클래스에 대한 별칭이 있는데 ,별칭이 필수다.
'DB관련 > jpa' 카테고리의 다른 글
JPA -여러가지 어노테이션 (0) | 2021.04.09 |
---|