JPA란?

Java Persistence API

 

자바의 ORM 기술표준이다. 다르게 표현하면, 'ORM을 구현하려면 자바에서는 이렇게 하자!' 하는 명세서다.

그리고, Hibernate는 JPA를 구현한 라이브러리 중 하나이고 가장 보편적이다.

 

그래서 뭘 할 수 있는데?

 

자바로 관계형 데이터베이스를 다룰 때,

객체지향 언어인 자바와 스키마 중심 데이터베이스의 패러다임 차이를 극복하여

객체중심 데이터 설계를 가능하게 한다.

 

사실 위처럼 설명하면 나는,

'뭐만 하면 객체중심이여' 하곤 했다.

 

뭔지는 모르겠지만 스프링이 객체 지향적으로 설계할 수 있다고 하면,

객체 지향이 가지는 상속, 참조를 통한 연관관계(구성)를 SQL로 풀어낼 때는 '번역'과도 같은 작업이 필요하다.

 

위 내용은 받아드릴 수 있지 않을까?

그래서 JPA는 이 번역을 다 처리해줘서

객체지향으로 풀어냈던 로직들을 그대로 가져갈 수 있도록 한다면 좋은 놈이지 않나? 도 이해할 수 있을 것이다.