2020/12/18 - [Books] - [JPA] JPA(Java Persistence API)가 뭐지!? 2020/12/18 - [Books] - [JPA] 영속성(persistence)이란? 2020/12/18 - [Books] - [JPA] 엔티티와 매핑. @Entity, @Table, @Id, @Column.. 2020/12/19 - [Books] - [JPA] 연관관계 매핑이란.? 2020/12/21 - [Books] - [JPA] 다양한 연관관계 매핑 2020/12/21 - [Books] - [JPA] 고급 매핑(상속관계, 복합키, 식별/비식별, 조인 테이블) 2020/12/22 - [Books] - [JPA] JPQL Query 정리 2020/12/22 - [Books] - [JPA] Qu..
| 엔티티 그래프 엔티티 조회시점에 연관된 엔티티들을 함께 조회하는 기능- 정적으로 정의하는 Named 엔티티 그래프- 동적으로 정의하는 엔티티 그래프 || 정적 엔티티 그래프(Named) c. 주문을 조회 시 연관된 회원도 함께 조회하는 엔티티 그래프 정의123456789101112131415161718@NamedEntityGraph(name = "Order.withMember", attributeNodes = { @NamedAttributeNode("member")})@Entity@Table(name = "ORDERS")public class Order { @Id @GeneratedValue @Column(name = "ORDER_ID") private Long id; @ManyToOne(fetch ..
> [Spring + JPA] Make Web Application (1)[Spring + JPA] Make Web Application (2) Spring Data JPA 적용- 환경설정- Repository 리팩토링- 명세 적용 | 환경설정 ㅇ pom.xml에 spring-data-jpa 라이브러리 추가1234567 org.springframework.data spring-data-jpa 1.8.0.RELEASE Colored by Color Scriptercs ㅇ appConfig.xml에 추가 후 base-package 속성에 repository 위치 지정1cs | Repository Refactoring 기존 Repository들이 Spring Data JPA를 사용하도록 Refactoring ..
prior post : [Spring + JPA] Spring Data JPA 란? (1) | 명세(specification) - 명세를 이해하기 위한 핵심 단어는 술어(predicate), ㄴ 이것은 단순히 참이나 거짓으로 평가 ㄴ AND, OR 같은 연산자로 조합 가능 ㄴ 데이터를 검색하기 위한 제약 조건 하나하나를 술어라고 할 수 있음 - 술어를 Spring Data JPA는 org.springframework.data.jpa.domain.Specification 로 정의 - Specification은 composite pattern 으로 구성되어 여러 specification 조합 가능 (SQL Where) - Specification 기능 사용을 위해 org.springframework.data..
| 소개-- spring framework에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트 - CRUD 처리를 위한 공통 인터페이스 제공 - repository 개발 시 인터페이스만 작성하면 실행 시점에 스프링 데이터 JPA가 구현 객체를 동적으로 생성해서 주입 - 데이터 접근 계층을 개발할 때 구현 클래스 없이 인터페이스만 작성해도 개발을 완료할 수 있도록 지원 - 공통 메소드는 스프링 데이터 JPA가 제공하는 org.springframework.date.jpa.repository.JpaRepository 인터페이스에 count, delete, deleteAll, deleteAll, deleteById, existsById, findById, save .. c.스프링 데이터 JPA 적용 - 공..
| Native SQL JPQL은 표준 SQL이 지원하는 대부분의 문법과 SQL 함수들을 지원하지만특정 데이터베이스에 종속적인 기능은 지원하지 않음 (Ex.- 특정 데이터베이스만 지원하는 함수, 문법, SQL 쿼리 힌트- 인라인 뷰, UNION, INTERSECT- 스토어드 프로시저)- ... 다양한 이유로 JPQL을 사용할 수 없을 때,JPA는 Native SQL을 통해 SQL을 직접 사용할 수 있는 기능을 제공.- SQL을 개발자가 직접 정의- 네이티브 SQL 사용 시 엔티티를 조회하고, JPA가 지원하는 영속성 컨텍스트의 기능을 그대로 사용 가능 반면, JDBC API 사용 시 단순히 데이터의 나열을 조회 || 사용 ㅇ 결과 타입 정의1public Query createNativeQuery(Stri..
| QueryDSL - 쿼리언어를 코드로 작성할 수 있도록 해주는 오픈소스 프로젝트 - 데이터 조회 기능이 특화 Documentation ko-KR ver. || 설정 ㅇ 라이브러리 추가 및 환경설정 (pom.xml) - querydsl-jpa : QueryDSL JPA 라이브러리12345 com.querydsl querydsl-jpa ${querydsl.version}cs - querydsl-apt : 쿼리 타입 생성 시 필요한 라이브러리123456 com.querydsl querydsl-apt ${querydsl.version} providedcs 12345 org.slf4j slf4j-log4j12 1.6.1cs - 엔티티를 기반으로 쿼리 타입이라는 쿼리용 클래스를 생성1234567891011121..