본문 바로가기

Entity3

Spring Data JPA - Entity, 관계 매핑 Spring Data JPA 목표 - Entity 만들어 릴레이션과 매핑한다. - Value 타입을 매핑한다. - 관계(1대다, 단방향, 양방향)를 설정한다. application.properties # datasource 설정 - postgreSQL DB spring.datasource.url=jdbc:postgresql://localhost:5432/postgres spring.datasource.username=postgres spring.datasource.password=1234 # hibernate 설정 spring.jpa.hibernate.ddl-auto=create # hibernate WARN 경고 출력 방지 spring.jpa.properties.hibernate.jdbc.lob.non.. 2021. 2. 11.
JPA 기본 - cascade, fetch, query JPA Cascade Cascade란 엔티티 상태를 전파시키는 옵션이다. 엔터티 상태란 다음 4가지를 말한다. Transient : 객체가 단지 선언되고 생성만 되었을 뿐 JPA 는 알지 못하는 상태다. Persistent : JPA가 관리중인 상태다. 예를 들어 Session.save() 할 때 이 상태가된다. Session 같은 PersistentContext 에 객체를 넣어준다. 그 외에 하이버네이트가 1차 캐시, Dirty Checking, Write Behind 등을 관리한다. 1차 캐시 : 객체 상태를 캐시에 저장한다. 예를 들어 이미 캐시에 어떤 데이터가 존재하면 load 명령을 해도 굳이 DB에서 가져오지 않고 있던 값을 사용하여 성능을 끌어올린다. Dirty Checking : 객체의 변.. 2021. 2. 7.
Springboot - Spring Data JPA Springboot 014 - Spring Data JPA ORM (Object Relational Mapping) 자바 코드는 객체 지향 프로그래밍인데 이를 릴레이션과 매핑할 때 개념적으로 불일치가 일어난다. 예를들면 객체의 다양한 크기들을 데이터 테이블에 어떻게 매핑을 시킬 수 있는가? 객체는 상속이 있지만, 테이블은 상속이 없는데 어떻게 매핑 할 것인가? Identity 는 객체의 경우 해쉬코드, equals method 를 통해 알지만, 테이블의 경우 인덱스 컬럼이 있다. 서로 다른 Object 와 Relation은 어떻게 일치시키는가? 에 관한 문제가 있다. ORM 은 이를 해결하기 위한 프레임워크고, 자바 (EE) ORM 표준으로 JPA 가 있다. 스프링 데이터 JPA는 위에서 말한 JPA를 .. 2021. 1. 20.
728x90