2023/11/28 4

[자바 ORM 표준 JPA 프로그래밍] 4. 엔티티 매핑

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 1. 엔티티 매핑어노테이션설명주요 속성 및 주의사항@Entity테이블과 매핑할 엔티티 지정- 기본 생성자 필수- final class, inner class 불가- enum, interface 불가@Table엔티티와 매핑할 테이블 지정 (생략 시 클래스명)-- name: 테이블명-- schema, catalog: 스키마/카탈로그-- uniqueConstraints: 유니크 제약조건@IdPK 매핑- 필수 지정- 단독으로 사용할 경우 사용자가 직접 할당해야 함- @GeneratedValuePK 자동 할당- 대리키 사용 (DB 벤더에 위임)GenerationType-- AUTO: 현재 DB에 적합한 키 생성 전략을 자동으로 선택-..

[자바 ORM 표준 JPA 프로그래밍] 3. 영속성 관리

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 1. 영속성 컨텍스트엔티티 객체의 영속화 작업을 관리하는 작업 영역1차 캐시, 해당 엔티티 관련 내부 쿼리 저장소 역할역할설명엔티티 상태 관리엔티티를 데이터베이스와 동기화함 (EntityManager에 의해 관리됨)트랜잭션 범위영속성 컨텍스트는 트랜잭션 단위로 엔티티를 관리- 트랜잭션이 시작되면 활성화되고, 종료 시 커밋 또는 롤백됨캐시 기능이미 로드된 엔티티는 다시 데이터베이스 조회 없이 재사용됨. 동작동작설명자동 플러시트랜잭션 커밋 전에 영속성 컨텍스트에서 변경된 데이터를 자동으로 데이터베이스에 반영.수동 플러시영속성 컨텍스트의 변경 사항을 강제로 데이터베이스에 반영. (entityManager.flush()) 예제) 자..

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

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 1. 컴포넌트컴포넌트역할특징주의사항 및 사용 방식EntityManagerFactory- Connection Pool 생성 및 관리- EntityManager 인스턴스 생성- 생성 비용 높음 (Singleton으로 관리)- 앱 실행 시 한 번만 생성- 전역으로 공유EntityManager- DB 통신- 쿼리 실행 (JPQL 사용)- 커넥션 획득 (DataSource 사용)- 스레드 안전하지 않음- 요청마다 생성 또는 주입- 스레드 간 공유 금지EntityTransaction- 트랜잭션 처리 담당- EntityManager를 통해 획득- 트랜잭션 범위 안에서만 DB 작업 가능- begin() → 작업 → commit() or r..

[자바 ORM 표준 JPA 프로그래밍] 1. JPA 소개

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 1. SQL을 직접 다룰 때 발생하는 문제점문제점내용SQL 의존 개발- 강한 의존 관계 (SQL 쿼리 ↔️ Java 객체)- 유지 보수 어려움 (쿼리 결과 ↔️ 엔티티 필드 일치 필수)- 계층 분리 어려움SQL Mapper 개발- 개발 효율성 저하 (반복되는 보일러플레이트 코드: JDBC API) 예제) SQL Mapper 개발더보기// JDBC 연결 정보String url = "jdbc:mysql://localhost:3306/mydatabase";String username = "root";String password = "password";// 데이터베이스 연결 및 쿼리 실행try (Connection connectio..