JPA 라는게 무엇일까?
Java Persistence API
ORM을 표준으로 하는 인터페이스 모음으로 Hibernate가 구현한 구현체이다.
ORM
Object Relational Mapping
객체는 객체대로, 데이터베이스는 데이터베이스대로 설계하고 중간에서 ORM이 중계(매핑) 해준다.
![](https://velog.velcdn.com/images/doker/post/63aae08c-2e4e-4dde-905c-7e012e87c3cd/image.png)
어플리케이션이 JPA를 사용하면 JPA에 내장된 JDBC API가 SQL 문을 통해서 DB와 통신한다.
JPA의 장점
- xml에 작성하는 query 보다 훨씬 간단하다.
- 테이블 DDL(https://mozi.tistory.com/m/207) 수정 이력을 관리할 필요가 없다.
DataBase의 table은 JPA에서 Entity에 해당한다. table을 수정하면 Entity를 수정하여 배포하기 때문에 history에 남는다.
- 유지보수에 용이하다.
table에 직접 접근하지 않고 Entity 필드명을 변경하여 Java 단에서 build 하여 오류를 어느정도 방지할 수 있다.
JPA의 단점
- 복잡한 query에는 적합하지 않다.
한계가 있어서 복잡한 조건을 걸려면 직접 query문을 작성하여야 한다.
출처 : https://jessyt.tistory.com/m/11