JPA(Java Persistence API) 사용법 1
JPA 를 그때그때 필요한 개념만 알아내어 간단하게 사용해 본적은 있지만
기초적인 공부까지는 해본 적이 없어서
기초적인 사용법과 예시 등을 다루면서 공부 하려 합니다.
이론
기존 스프링에서는 일단
MyBatis를 통해 자바에 SQLMapper를 지원해줍니다.
SQLMapper는 SQL문을 객체와 매핑 하는 특징이 있습니다.
아래 사진처럼 설정 완료된 프로젝트 안의 xml 파일에
Sql을 매핑 시키는 것이 기존 스프링의 방식입니다.
JPA(Java Persistence API)를 알기에 앞서
영속성(Persistence),
ORM(Object-Relational Mapping),
개념을 알아야 합니다.
영속성(Persistence)
데이터를 생성한 프로그램이 종료되어도 사라지지 않는 데이터의 특성을 말합니다.
H2 데이터 베이스처럼 스프링 부트 어플리케이션이 종료되면 저장된 데이터가 없어지지 않고
따로 외부 DB에 저장돼 영구히 지속됩니다.
ORM(Object-Relational
Mapping)
뜻 그대로
자바의 객체와 DB테이블을 매핑 시켜줍니다.
간단하게 아래 사진을 보면 이해할 수 있습니다.
왼쪽은 자바 객체 FoodIngre 입니다.
오른쪽은 왼쪽 클래스와 매핑 된 Foodingre 테이블입니다.
Column을 잘 보시면 이름과 자료형이 클래스와 맞춰진 것을 확인 하실 수 있습니다.
JPA의 설정이 완료된 프로젝트에 사진처럼 객체를 생성하면 알아서 데이터베이스를 만들어 주면서 매핑 시키고
SQL 문도 만들어주는 것입니다.
그럼 다시 JPA의 개념을 보면!
JPA란?
기본 사용법
다양한 어노테이션이 있습니다.
그 중 기본적인 것만 보겠습니다.
@Entity :
해당 클래스에 어노테이션을 붙이면 JPA가 관리하는 클래스가 됩니다.
간단하게 테이블이라고 이해하면됩니다.
@Id : 테이블의 ID(Primary Key , 주키) 설정입니다.
@GeneratedValue : 주키의 생성 전략을 설정할 때 사용합니다.
Strategy : 전략 설정입니다.
GenerationType.IDENTITY 는 ID 생성전략을 연결된 DB에게 위임하겠다는 뜻입니다.
참고로 이번 환경에서 제가 연결한 DB는 MYSQL이여서 AUTOINCREMENT 전략을 그대로
따라간다는 뜻 입니다.