본문 바로가기

Spring JPA17

영속성 관리 - 5 JPA가 제공하는 기능은 크게 엔티티와 테이블을 매핑하는 설계 부분과 매핑한 엔티티를 실제 사용하는 부분으로 나눌 수 있다. 이번 글에서는 매핑한 엔티티를 엔티티 매니저를 통해 어떻게 사용하는지 보자. 엔티티 매니저 팩토리와 엔티티 매니저 데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 하나만 생성한다. // 엔티티 매니저 팩토리 - 생성 EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("jpabook"); 이제부터 필요할 때마다 엔티티 매니저 팩토리에서 엔티티 매니저를 생성하면 된다. // 엔티티 매니저 - 생성 EntityManager entityManag.. 2021. 6. 26.
JPA 시작 - 4 개발 도구 : IntelliJ Ultimate 빌드 도구 : Maven pom.xml 4.0.0 jpabook jpa-start 1.0-SNAPSHOT 1.6 org.projectlombok lombok 1.18.20 provided org.hibernate hibernate-entitymanager 4.3.10.Final com.h2database h2 1.4.187 org.apache.maven.plugins maven-compiler-plugin 3.1 ${java.version} ${java.version} Member 클래스 package jpabook.start; import lombok.*; import javax.persistence.Column; import javax.persistenc.. 2021. 6. 25.
JPA 소개 - 3 JPA란 무엇인가? JPA (Java Persistence API) 는 자바 진영의 ORM 기술 표준이다. ORM이란 무엇인가? ORM(Object-Relational Mapping)은 이름 그대로 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 해결해준다. 예를 들어, 객체를 데이터베이스 저장할 때 INSERT SQL를 직접 작성하는 것이 아니라, ORM 프레임워크에 저장하면 된다. jpa.persist(member)를 사용하여 객체를 저장하면 된다. ORM 프레임워크는 단순히 SQL을 개발자 대신 생성해서 데이터베이스에 전달해주는 것뿐만 아니라 앞서 이야기한 다양한 패러다임 불일치 문제들도 해결해준다. 따라서 객체 측면에서 정교한 .. 2021. 6. 23.
JPA 소개 - 2 패러다임의 불일치 관계형 데이터베이스는 데이터 중심으로 구조화되어 있고, 집합적인 사고를 요구한다. 그리고 객체지향에서 이야기하는 추상화, 다형성, 상속 같은 개념이 없다. 객체와 관계형 데이터베이스는 지향하는 목적이 서로 다르므로 둘의 기능과 표현 방법도 다르다. -> 객체와 관계형 데이터베이스의 패러다임 불일치 문제라 한다. 예시) 객체 상속 모델 테이블 모델 ∴ DTYPE 칼럼을 사용해서 어떤 자식 테이블과 관계가 있는지 정의 ※ 슈퍼타입 서브타입 관계를 사용하면 객체 상속과 가장 유사한 형태로 테이블을 설계할 수 있다. 객체 모델 코드 abstract class Item { Long id; String name; int price; } class Album extends Item { String .. 2021. 6. 22.