Spring

[메타코딩] 6강. JPA(Java Persistence API)란?

joje* 2023. 9. 15. 21:23

6. JPA는 OOP 관점에서 모델링을 할 수 있게 해준다.(상속, 콤포지션(결합), 연관관계)

: JPA를 이용해 JAVA 객체내에서 다른 객체를 자료형으로 사용할 경우 결합이 가능하다.

class car{
	int id;
    String name;
    String color;
    Engine engine;
}

class Engine{
	int id;
    int power;
}

: 위와 같이 2개의 객체가 있을 때, car와 engine은 결합관계라고 하며, car를 ORM 할 경우 아래와 같은 데이터 베이스 테이블들이 생성된다.

                                                                       

 

: JPA를 이용할 경우, 객체간 상속이 가능해진다.

class car extends EntityDate{
	int id;
    String name;
    String color;
    Engine engine;
}

class Engine extends EntityDate{
	int id;
    int power;
}

class EntityDate{
	TimeStamp createDate;
	TimeStamp updateDate;
}

: 위와 같이 car, Engine 객체에서 각각 EntityDate를 상속받을 경우, 아래와 같은 데이터베이스 테이블이 생성된다.

 

7. JPA는 방언처리가 용이하여 Migration하기가 좋다.유지보수에도 좋음

: DBMS 마다 고유의 명령어 문법(방언)이 존재한다. 

: JPA에 추상화 객체를 만들어 사용할 경우, 다양한 종류의 DBMS(Oracle, postgre, mariaDB...)를 사용하여 DB에 접근할 수 있다.