모르지 않다는 것은 아는것과 다르다.

Spring Jpa 13

Spring Data Jpa

Spring Data JPA란? Spring Data JPA는 Spring에서 제공하는 모듈이다. JPA, 하이버네이트를 몰라도 되어야 한다. -> 추상화의 이점 JPA를 한 단계 추상화시킨 Repository라는 인터페이스를 제공함으로써 이루어진다. Spring Data JPA의 Repository의 구현에서 JPA를 사용하고 있다. JPA 구현체의 사용을 감추고, 다양한 지원과 설정 방법을 제공한다. JPA 기본 구현체로 Hibernate 사용한다. Querydsl 지원를 지원한다. 아래와 같은 것들을 사용할 필요가 없다. EntityManager 를 직접 사용하지 않는다. JPQL을 직접 사용하지 않는다. persist(), merge(), close() 를 직접 사용하지 않는다. 트랜잭션을 get..

Spring Jpa 2022.02.27

JPA 란

JPA 가 필요한 이유 SQL 중심적인 개발의 문제점을 해결해준다. CRUD와 같은 반복적인 코드를 지원해준다. 개발자는 객체지향적으로 개발을 할 수 있다. 필드값이 추가된다거나 변경되는 상황이 발생했을때, 쿼리문을 전부 바꿔주는 작업을 줄여준다. 패러다임의 불일치를 해결해준다. 1차 개시와 동일성 보장 --> 신뢰도 보장 트랜잭션을 지원하는 쓰기 지연 지원 지연 로딩 지원 --> 성능 보장 객체 vs 관계형 데이터베이스 상속 관점 ( 객체 상속 관계 vs Table 슈퍼타입 서브타입 관계) 연관관계 관점 ( 단방향 vs 양방향) 데이터 타입 관점 데이터 식별 방법 ( 같은 참조값 기준 같은 값 vs 다른 값) 패러다임의 불일치를 해결해 줄 수 있는 기술 "JPA" 위에서 말한 객체 와 관계형 데이터베이..

Spring Jpa 2022.02.27

영속성 전이 (CASCADE)

영속성 전이 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들도 싶을 때 사용한다. 영속성 전이는 연관관계를 매핑하는 것과 아무 관련이 없음 엔티티를 영속화할 때 연관된 엔티티도 함께 영속화하는 편리함 을 제공할 뿐이다. 아래와 같이 설정하면 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장. 코드 예시 Child child1 = new Child(); Child child1 = new Child(); Parent parent = new Parent(); parent.addChild(child1); parent.addChild(child2); em.persist(parent); em.persist(child1); em.persist(child2); 위와 같이 child에 대해서도..

Spring Jpa 2022.02.27