
[Spring Data JPA #2] 구현체 분석 및 기타 기능
JPA 구현체 분석: SimpleJpaRepository Spring Data JPA는 내부적으로 SimpleJpaRepository 클래스를 통해 대부분의 기능을 제공합니다. 주요 특징 findById, save 등 모든 CRUD 메서드의 실제 구현체 트랜잭션 처리: 클래스 레벨: 기본적으로 readOnly ...
JPA 구현체 분석: SimpleJpaRepository Spring Data JPA는 내부적으로 SimpleJpaRepository 클래스를 통해 대부분의 기능을 제공합니다. 주요 특징 findById, save 등 모든 CRUD 메서드의 실제 구현체 트랜잭션 처리: 클래스 레벨: 기본적으로 readOnly ...
서론 스프링을 사용할 경우, Spring에서 제공하는 Spring Data JPA 라이브러리를 사용할 수 있습니다. 기존 JPA에서 편의성을 추가한 기능들을 제공해 더욱 빠르고 효율적인 개발을 돕습니다. 단순 CRUD의 경우 작성해야 하는 코드의 양은 많은데 비해 거의 테이블명만 바뀌는 반복작업인 경우가 많습니다. 이를 구현체를 생성해서 자동으로...
주요 키워드 페치 조인(fetch join) 다형성 쿼리 Named 쿼리 벌크 연산 페치 조인 (Fetch Join) join fetch 문법을 사용 JPQL의 distinct는 SQL의 DISTINCT를 추가할 뿐 아니라, 애플리케이션 레벨에서 엔티티 중복도 제거함 일반 조인 vs 페치 조인 일반 조인: ...
주요 키워드 JPQL QueryDSL Criteria 네이티브 SQL SpringJdbcTemplate 객체지향 쿼리 언어(JPQL) JPA는 엔티티 객체 중심 개발을 지향 검색 시에도 테이블이 아닌 엔티티 객체를 기준으로 탐색 결국 SQL처럼 조건을 걸 수 있는 쿼리 언어가 필요 → JPQL 사용 SQL과...
주요 키워드 프록시 지연 로딩(Lazy loading) 즉시 로딩(Eager loading) 영속성 전이 고아 객체 임베디드 타입 값 타입 불변 객체 프록시 em.find() vs em.getReference() em.find(): 실제 DB에서 엔티티 조회 em.getReference(): 프록시 객체...
주요 키워드 엔티티 매핑 일대일(1:1) 관계 일대다(1:N) 관계 다대일(N:1) 관계 다대다(N:M) 관계 엔티티 매핑 기본 @Entity 사용 시 유의사항 JPA로 테이블과 매핑할 클래스는 반드시 @Entity 선언 필요 기본 생성자 필수 (public 또는 protected) final, enum, in...
주요 키워드 JPA와 Hibernate 영속성 컨텍스트 엔티티의 생명주기 플러시 서론 이전 회사에 재직중일 때에는 ORM을 사용하지 않았습니다. 당시에도 Ktor에서 사용할 수 있는 Ktorm이나 exposed와 같은 ORM이 존재하고 있었으나, 기존에 시스템이 이미 구현이 되어있는 상태에서 변경해야하는 범위가 너무 ...
주요 키워드 Dev Containers란? devcontainer.json 사용 방법 #1: 컨테이너에 직접 Clone 사용 방법 #2: 로컬에 Clone 후 컨테이너로 Reopen 두 방식의 차이와 주의사항 💥윈도우에서는 안되는데요… 처음 이 블로그를 구성할 때는 MacOS 환경에서 구성했습니다. 별 다른 수고 없이 그냥 ...
이전 포스팅 바로가기 (1) 시작하기 (2) 블로그 단장하기 (3) 포스팅 이제 가장 중요한 포스팅에 대해 작성합니다. 포스트 작성하기 포스트는 /_posts 디렉토리 내에 마크다운 파일으로 작성합니다. 포스트 이름은 마음대로 정하면 됩니다. 저는 관리가 용이하도록 YYYY-MM-DD-title-0.md 형식으로 지정했습니다. ...
이전 포스팅 바로가기 (1) 시작하기 (2) 블로그 단장하기 초기 설정을 끝냈으면, 이제 블로그를 쓸만하게 다듬는 작업이 필요합니다. 이번 포스트에서는 기본적인 config 설정, 색상 바꾸기, 댓글, 조회수 카운터를 설정하는 방법에 대해 작성합니다. Config 설정하기 config.yml 설정 _config.yml 파일에서 사이트 c...