개발서적/자바 ORM 표준 JPA

    [자바 ORM 표준 JPA 프로그래밍] 3.2 영속성 컨텍스트란?

    Reference. 자바 ORM 표준 JPA 프로그래밍 책 목차 및 이전 글 더보기 들어가기 전 JPA 특징, Q&A 1. JPA 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 1.2 패러다임의 불일치 1.3 JPA란 무엇인가? 2. JPA 시작 3. 영속성 관리 3.1 엔티티 매니저 팩토리와 엔티티 매니저 3.2 영속성 컨텍스트란? JPA를 이해하는게 가장 중요한 단어 엔티티를 영구 저장하는 환경이라는 뜻 Entity Manager로 엔티티를 저장, 조회하면 매니저는 영속성 컨텍스트에 엔티티를 보관, 관리 영속성 컨텍스트는 엔티티 매니저를 생성할때 하나 만들어짐 → 복잡한 상황에선 여러 엔티티 매니저가 같은 영속성 컨텍스트에 접근이 가능(11장) /* 단순히 회원 엔티티를 저장한다고 표현 -> 정..

    [자바 ORM 표준 JPA 프로그래밍] 3.1 엔티티 매니저 팩토리와 엔티티 매니저

    Reference. 자바 ORM 표준 JPA 프로그래밍 책 목차 및 이전 글 더보기 들어가기 전 JPA 특징, Q&A 1. JPA 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 1.2 패러다임의 불일치 1.3 JPA란 무엇인가? 2. JPA 시작 3. 영속성 관리 3.1 엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저: 저장, 수정, 삭제 조회 등 엔티티 관련 모든 일 처리 EntityManagerFactory META-INF/persistence.xml의 정보를 바탕으로 생성 생성비용이 커서, 한개만 만들어서 애플리케이션 전체 공유하도록 설계 여러 스레드가 동시 접근해도 안전, 다른 스레드간 공유 가능 ... //공장 만들기, 비용이 아주 많이 든다. (실행할 때, 한번만 하는게 좋음?) En..

    [자바 ORM 표준 JPA 프로그래밍] 2. JPA 시작

    Reference. 자바 ORM 표준 JPA 프로그래밍 책 목차 및 이전 글 더보기 들어가기 전 JPA 특징, Q&A 1. JPA 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 1.2 패러다임의 불일치 1.3 JPA란 무엇인가? 2. JPA 시작 예제 프로젝트 구조 src / main -java -jpabook/start -JpaMain.java -Member.java -resources -META-INF -persistence.xml pom.xml 2.4 객체 매핑 시작 Member.java @Entity @Table(name = "MEMBER") public class Member{ @Id @Column(name = "ID") private String id; @Column(name = "NAM..

    [자바 ORM 표준 JPA 프로그래밍] 1.3 JPA란 무엇인가?

    Reference. 자바 ORM 표준 JPA 프로그래밍 책 목차 및 이전 글 더보기 들어가기 전 JPA 특징, Q&A 1. JPA 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 1.2 패러다임의 불일치 1.3 JPA란 무엇인가? JPA(Java Persistence API) : 자바 진영의 ORM 표준 기술 ORM(Object-Relational Mapping) : 객체와 관계형 데이터베이스를 매핑하는 기술 → 객체와 테이블 패러다임 불일치 문제를 개발자 대신 해결 1.3.1 JPA 소개 엔터프라이즈 자바 빈즈(EJB) 안에 엔티티 빈이라는 ORM 기술이 포함 → 복잡하고 기술 성숙도도 떨어지며 자바 엔터프라이즈(J2EE) 서버에서만 동작 하이버네이트 오픈소스 ORM 프레임워크가 등장 → EJB보다..

    [자바 ORM 표준 JPA 프로그래밍] 1.2 패러다임의 불일치

    Reference. 자바 ORM 표준 JPA 프로그래밍 책 목차 및 이전 글 더보기 들어가기 전 JPA 특징, Q&A 1. JPA 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 1.2 1.2 패러다임의 불일치 애플리케이션이 발전하면 내부 복잡도가 상승 → 복잡도가 증가하면 유지보수하기가 어려움 비즈니스 요구사항을 정의한 도메인 모델도 객체로 모델링하면 객체지향 장점을 활용 가능 → 부모 객체를 상소받거나, 다른 객체를 참조하고 있다면 저장하기 쉽지 않음 → Ex)1. 회원 객체 저장이 필요 2. 회원 객체가 팀 객체를 참조 3. 회원 + 팀을 저장해야 함 (단순 회원 객체만 저장하면 팀 객체를 잃어버리는 문제 발생) 객체와 관계형 데이터베이스는 지향하는 목적이 다름, 둘의 기능과 표현 방법도 다름 ..

    [자바 ORM 표준 JPA 프로그래밍] 1.1 SQL을 직접 다룰 때 발생하는 문제점

    Reference. 자바 ORM 표준 JPA 프로그래밍 책 목차 및 이전 글 더보기 들어가기 전 JPA 특징, Q&A 1. JPA 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 1.1.1 반복, 반복 그리고 반복 예제1. public class Member { private String memberId; private String name; ... } public class MemberDAO { public member find(String memberId{...} } 기존의 개발 순서 1. 회원 조회용 SQL을 작성한다. SELECT MEMBER_ID, NAME FROM MEMBER M WHERE MEMBER_ID = ? 2. JDBC API, Mybatis를 사용해서 SQL을 실행한다. Resu..

    [자바 ORM 표준 JPA 프로그래밍] JPA 특징, Q&A

    책에 들어가기 전, 궁굼했던 사항들에 정리 (JPA 특징, Q&A) JPA를 공부하기전 전, 궁굼했던 것들을 글쓴이가 책을 통해 정리한 부분이 있어 먼저 작성한다. 1. JPA 특징 지루하고 반복적인 CRUD SQL을 알아서 처리 - mybatis 쿼리 SELECT name FROM players LIMIT 1 SELECT name, age FROM players LIMIT 1 INSERT INTO players (name, age) VALUES (#{name}, #{age}) UPDATE players SET age = #{age} WHERE name = #{name} DELETE FROM players WHERE name = #{name} - JPA List users = userRepository...