Spring/Spring Data JPA 34

[자바 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..

[Spring Data JPA] 2-2. Transactionality

1. 기본 트랜잭션 설정SimpleJpaRepositoryCrudRepository의 실제 구현체CRUD 메서드의 트랜잭션 설정 담당읽기 작업의 경우, 트랜잭션 설정의 readOnly 플래그는 true로 설정됩니다.그 외의 모든 작업은 @Transactional로 설정됩니다. (기본 트랜잭션 설정이 적용되도록) 2. 트랜잭션 설정 커스터마이징특정 저장소 메서드의 트랜잭션 설정 조정Method Override (+@Transactional 설정)더보기public interface UserRepository extends CrudRepository { @Override @Transactional(timeout = 10) public List findAll(); // Further query metho..

[Spring Data JPA] 2-1. Configuration

1. Annotation-based ConfigurationJPA를 사용하기 위한 주요 구성 요소를 어노테이션으로 정의합니다.구성 요소설명@EnableJpaRepositoriesSpring Data JPA의 리포지토리를 스캔하여 활성화하는 어노테이션.Repository 인터페이스에 대한 구현체를 프록시 형태로 제공EntityManagerFactoryEntityManager 인스턴스를 생성하고 관리- JPA 구현체 생성 시 사용하는 기본 인터페이스.- LocalContainerEntityManagerFactoryBeanEntityManagerFactory를 설정하고 관리- Spring과 JPA를 통합 (Spring 예외 처리 통합)JpaTransactionManagerEntityManager와 통합하여 트..

[Spring Data JPA] 1. Core concepts

1. Repository 인터페이스Spring Data의 중심 인터페이스입니다.개념설명마커 인터페이스- 객체의 특정 성질을 표시하기 위해 사용- 타입 정보만을 포착하고 식별하는 데 사용 (메서드 정의 ❌)쿼리 메서드 자동 생성메서드 이름을 분석하여 자동으로 적절한 쿼리를 생성해줌Spring Data JPASpring Data JPA는 Repository 인터페이스를 자동으로 구현하여 CRUD 작업을 제공합니다. 코드) Repository더보기@Indexedpublic interface Repository { } 타입 인자T: 도메인 클래스ID: 도메인 클래스의 식별자 타입 예제) 쿼리 메서드 자동 생성더보기interface UserRepository extends CrudRepository { l..