Back-End
-
3. 영속성 관리Back-End/JPA 2022. 4. 11. 10:24
3-1. 엔티티 매니저 팩토리와 엔티티 매니저 EntityManagerFactory 데이터베이스를 하나만 사용할 경우, 일반적으로 EntityManagerFactory 를 하나만 생성한다. 생성 시, 비용이 아주 많이 든다 → 하나만 만들어서 애플리케이션 전체에서 공유하도록 설계되어 있다. 아래 코드를 통해 생성할 수 있으며, Persistence.createEntityManager(”jpabook”) 호출 시 META-INF/persistence.xml에 있는 정보를 바탕으로 EntityManagerFactory를 생성한다. EntityManagerFactory emf = Persistence.createEntityManager("jpabook"); → 인자로 “jpabook”을 준 이유는 persis..
-
2. JPA 시작Back-End/JPA 2022. 4. 3. 13:24
데이터베이스 방언 JPA는 특정 데이터베이스에 종속적이지 않은 기술이다. → 데이터베이스를 손쉽게 교체할 수 있다. 방언(Dialect) 이란? 특정 데이터베이스만의 고유한 기능 대부분의 JPA 구현체는 다양한 데이터베이스 방언 클래스를 제공하여 데이터베이스 방언을 처리해준다. 예시 H2: org.hibrenate.dialect.H2Dialect 오라클 10g: org.hibrenate.Oracle10gDialect MySQL: org.hibrenate.MySQL5InnoDBDialect 엔티티 매니저 설정 1. 엔티티 매니저 팩토리 생성 Persistence 클래스를 사용하여 엔티티 매니저 팩토리를 생성 엔티티 매니저 팩토리는 애플리케이션 전체에서 딱 한 번만 생성하고, 공유하여 사용해야 한다. Ent..
-
1. JPA 소개 - 패러다임의 불일치Back-End/JPA 2022. 3. 30. 15:29
객체 vs 관계형 데이터베이스 지향하는 목적이 서로 달라서, 둘의 기능과 표현 방법이 다르다. 객체 구조를 테이블 구조에 저장하는 데는 한계가 존재한다. 둘 사이의 패러다임 불일치 문제를 해결하기 위해 개발자는 많은 시간과 코드를 소비하게 된다. 이제, 객체와 관계형 데이터베이스 간의 패러다임의 불일치로 발생하는 문제점 4가지를 살펴보자. 1. 상속 문제점(차이점) 객체에는 상속 개념 존재하지만, 관계형 데이터베이스에는 존재하지 않는다. 객체 저장 시, 부모 객체를 위한 INSERT SQL과 자식 객체를 위한 INSERT SQL을 모두 작성해야 한다. INSERT INTO ITEM ... INSERT INTO ALBUM ... 객체 조회 시, 부모 테이블과 자식 테이블을 조인해서 조회하여야 한다. SEL..