My Tech Blog

Jpa Posts

38 posts in this category

[JPA] Fetch Join

Fetch Join은 일반적인 SQL JOIN이 아닌 JPQL에서 성능 최적화를 위해 제공하는 기능이다. Fetch Join은 연관된 엔터티 혹은 컬렉션을 한번에 조회하는...

[JPA] 비관적 락, 낙관적 락

1. 낙관적 락 - Optimistic Lock 데이터 갱신시 충돌이 발생하지 않을 것이라고 낙관적으로 가정하는 방법이다.

Spring Data JPA

이 md는 김영한씨의 실전! 스프링 데이터 JPA 라는 강의를 보고 정리합니다.

[Data Jpa] 쿼리 메소드 기능

만약 findByUsername같이 Entity 종속적인 기능을 사용하려면 어떻게 해야 할까? Spring JPA는 쿼리 메소드라는것을 제공한다. 쿼리 메소드 기능 3가지

[JPA] Eager/LAZY loading

과연 Member만 조회할 때 Team도 조회해야 할까? <img width=400px src=./img/when-member-get-team.png>

[JPA] Entity

Entity : DB에서 영속적으로 저장된 데이터를 자바 객체로 매핑하여 ‘인스턴스의 형태’ 로 존재하는 데이터 Entity 클래스는 실제 DataBase의 테이블과 1...

JPA Auditing

JPA Auditing 사용동기 MembershipApi를 만들면서 유저 가입일을 추가해보고싶었다.

[Jpa] Proxy

em.find() vs em.getReference() em.find() : DB를 통해서 실제 엔티티 객체 조회 em.getReference() : DB 조회를 미루는 가짜(Proxy)엔티티 객체 조회 <img...

Querydsl

: Querydsl 정적 타입을 이용해서 SQL과 같은 쿼리를 생성할 수 있도록 해 주는 프레임워크이다 Querydsl은 타입에 안전한 방식으로 HQL 쿼리를...

QueryDSL

SQL, JPQL을 코드로 작성할 수 있도록 도와주는 빌더 API JPA Criteria에 비해서 편리하고 실용적 오픈소스

[JPA] 값 타입 과 불변 타입

값 타입 : 복잡한 객체 세상을 조금이나마 단순화하려고 만든 개념이다. 따라서 값 타입은 단순하고 안전하게 다룰 수 있어야 한다.

[JPA] 값 타입 컬렉션

: 값 타입을 하나 이상 저장할 때 사용한다. @ElementCollection, @CollectionTable 사용한다. DB는 컬렉션같은 테이블을 저장할 수 없다. 컬렉션을 저장하기 위한...

[JPA] 값 타입

: 복잡한 객체 세상을 조금이나마 단순화하려고 만든 개념이다. 따라서 값 타입은 단순하고 안전하게 다룰 수 있어야 한다.

[JPA] 객체지향 쿼리 언어

JPA는 다양한 쿼리 방법을 지원한다. JPQL JPA Criteria QueryDSL 네이티브 SQL JDBC API 직접사용, MyBatis, SpringJdbcTemplate 함께 사용

[JPA] 고급매핑 - 상속관계 매핑

JPA는 DB의 슈퍼타입/서브타입 과 같은 어떠한 논리적 기법을 어떤 3가지 방법으로 매핑을 하던 모든 매핑을 지원한다. 상속관계 매핑 : 객체의...

[JPA] 고아 객체(ORPAN)

: 부모 엔티티와 자식관계가 끊어진 엔티티 고아 객체 제거: 부모 엔티티와 자식관계가 끊어진 엔티티를 제거한다. orpanRemoval = true Parent parent1...

[JPA] 기본값 타입

생명주기를 Entity에 의존한다. 값 타입을 공유하면 안 된다. ex) String name, int age

[JPA] 다양한 연관관계 매핑(실전)

실습 repo: https://github.com/siwony/HelloJPA/tree/variousRelationshipMapping_03 다양한 연관관계 매핑(실전) 엔티티 - 배송, 카테고리 추가 <img width=450px src=./img/various-relationship-mapping-entity.png>

[JPA] 상속관계 매핑(실전)

실습 repo: https://github.com/siwony/HelloJPA/tree/inheritMapping_04 상속관계 매핑(실전) 요구사항 추가 상품의 종류는 음반, 도서, 영화가 있고 이후 더 확장될 수 있다. 모든 데이터는...

[JPA] 연관관계 매핑 시작

실습 repo: https://github.com/siwony/HelloJPA/tree/basicMapping_02 연관관계 매핑 시작 할수 있으면 최대한 단방향 실무에서 JPQL을 많이 짜기 때문에 양방향이 많다.

[JPA] 정리

정리 엔티티 타입의 특징 식별자가 존재한다. 생명 주기를 관리한다. 공유한다.

[JPA] 준 영속 상태

: 영속 상태의 Entity가 영속성 컨텍스트에서 분리되는 것 영속에서 준 영속으로 바뀌는 상태 준 영속상태에서는 영속성 컨텍스트가 제공하는 기능을 사용할...

[JPA] 프로젝션

: SELECT 절에 조회할 대상을 지정하는것 프로잭션으로 관리되는 Entity는 모두다 영속성 컨텍스트에 관리된다. 프로젝션 대상 1. 엔티티 SELECT m FROM...

[Jpa] 플러시(flush)

: 영속성 컨텍스트의 변경내용을 DB에 반영하는 것 영속성 컨텍스트를 비우지 않는다. 영속성 컨텍스트의 변경내용을 DB에 동기화한다. transaction이라는 작업 단위가 중요하다....