모든 기업 어플리케이션은 많은 데이터를 데이터베이스에 저장하고 검색한다. 저장소 관리를 할수 있는 모든 기술들이 있지만 개발자들은 데이터베이스 최적화에 힘쓴다.
일반적으로 자바개발자는 많은 코드를 사용하거나 단일프레임워크를 사용해 데이터베이스와 연동한다. 그러나 JPA를 사용하면 데이터베이스와 연동하는 부담이 현저하게 줄어든다. 이 형태는 객체모델(자바프로그램)과 관계모델(데이터베이스) 사이에 다리를 놓는다.
관계모델과 객체모델의 불일치
관계모델은 표형태로 표현하며, 반대로 객체모델은 서로 연결된 그래프형태로 표현된다.
객체모델이 관계형 데이터베이스에서 저장하고 검색하는 동안 아래의 이유들로 일부 불일치가 발생한다.
세분성 : 때때로 데이터베이스의 테이블 수보다 많은 클래스를 가지고 있는 객체모델을 볼수있다.(객체모델은 관계모델보다 세분화되어있다는 뜻).
서브타입 : 서브타입(상속을 의미)은 모든 타입의 관계형 데이터베이스를 지원하지 않는다.
정체성 : 객체모델과 같이 관계형 모델은 정체성을 노출하지 않는다 equality를 쓰는동안.
연관관계 : 관계모델은 객체 도메인 모델을 보기 전까지 다중관계를 결정할 수 없다.
데이터 탐색 : 객체 네트워크에서 객체 간 데이터 탐색은 두 모델에서 서로 다르다.
What is JPA?
Java Persistence API는 Oracle Corportaion에서 제공하는 방대한 데이터를 데이터베이스에 저장하는 클래스와 메소드의 모음이다.
Where to use JPA?
관계 객체를 관리하는 코드의 부담을 줄이기 위해 프로그래머는 JPA Provider 프레임워크를 따르므로 데이터베이스 인스턴스와 쉽게 상호작용 할 수 있다. 여기서 필요한 프레임워크는 JPA에 의해 인계받는다.
JPA History
EJB의 이전버전에선 비지니스 로직과 결합된 퍼시스턴스 계층을 javax.ejb.EntityBean 인터페이스를 이용해 정의했다.
- EJB3.0을 소개하는 동안 퍼시스턴스 레이어는 분리되어 JPA 1.0으로 정의되었다.
- JPA2.0은 JAVA EE6과 함께 릴리즈 되었다.
- JPA2.1은 JAVA EE7과 함께 릴리즈 되었다.
JPA Providers
JPA는 오픈소스API이므로 Oracle, Redhat, Eclipse 등과 같은 다양한 엔터프라이즈 공급업체는 JPA지속성을 추가하여 새로운 제품을 제공한다.
이 제품 중 일부 : Hibernate, EclipseLink, Toplink, Spring Data JPA 등
원문 : https://www.tutorialspoint.com/jpa/jpa_introduction.htm
(오역이 있을수 있으니 발견 시 댓글달아주세요!)
'Java' 카테고리의 다른 글
JPA - ORM components (2) | 2017.11.02 |
---|---|
JPA - ORM 튜토리얼 (0) | 2017.11.01 |
java8 functionalInterface Function (5) | 2017.01.10 |
Lambda Expression, 람다 예제 (0) | 2017.01.05 |
String StringBuffer StringBuilder 차이 (2) | 2016.12.27 |