무한반복 , 지루한 쿼리를 작성하는 코드 중간에 추가하는 등 과정을 통해 sql에 의존적인 개발을 할 수 밖에 없다.sql 매퍼를 개발자가 다 해주는데 객체답게 모델링 할수록 매핑작업이 늘어난다. JPA (Java Persistence API) : 자바 진영의 ORM
맵핑이란? (여러 위키들에서)매핑이란 어떤 값을 다른 값에 대응시키는 과정을 총칭한다.하나의 값을 다른 값으로 대응시키는 것을 말한다.@Entity가 붙은 클래스는 JPA가 관리하며 엔티티라 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수기본
객체지향스럽게 만드는 방법의 기본이자 어려운 부분 객체와 테이블의 연관관계의 차이를 이해해야한다. 객체를 테이블에 맞춰 데이터 중심으로 모델링하면 , 협력관계를 만들 수 없다. 왜냐하면, 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾고 객체는 참조를 사용해서
관계형 데이터베이스는 상속 관계X 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사(공통 적인 속성은 부모로 지정하고 개별적인 특징만 내리는)상속관계 매핑: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑각각 테이블로 변환 -> 조인 전략(정규화된
둘 다 출력 -> 이 때는 팀과 멤버 둘 다 가져와야한다. 회원만 출력 -> 이 때도 연관관계라고 사용하지 않는 팀까지 가져오면 손해다. 상황에 맞게 사용하기위하여 지연로딩과 즉시로딩을 알아야하고 이를 기초로 프록시 매커니즘을 이해해야한다. em.find(): 데이터베
값과 엔티티는 추적이 되는지 안되는지의 차이점을 가진다.@Entity로 정의하는 객체데이터가 변해도 식별자로 지속해서 추적 가능예) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입
JPQL : 표준문법JPA Criteria : JPQL을 기반으로 자바 코드로 짜서 빌드해주는 제너레이터 클래스의 모음QueryDSL : JPQL을 기반으로 자바 코드로 짜서 빌드해주는 제너레이터 클래스의 모음네이티브 SQL : JPA를 써도 표준문법을 벗어나거나 종속
.(점)을 찍어 객체 그래프를 탐색하는 것 select m.\~~ From Member m 일 때상태 필드(state field): 단순히 값을 저장하기 위한 필드 (ex: m.username)연관 필드(association field): 연관관계를 위한 필드단일 값
공부하면서 요약한 부분만 정리해놨고 내용이 많아 보기좋게 다듬지는 못함. 추 후 수정 요망 JPA를 끼고서 API 만드는 것은 고려해야할 점이 많다. postman 이용해서 api 방식으로 확인문제점 1 상황 : 엔티티의 필드(컬럼)명을 바꿔야한다면?기존 : 화면 >
장점동적 쿼리에 대해서 해결가능 java로 sql문을 작성하면서 컴파일러로 오류를 잡아 낼 수 있다. (자동 완성 기능까지 사용 할 수 있다.)메서드로 따로 뽑고 재사용 가능하다. gradle에 querydsl 관련한 설정들을 추가해주고 entity를 만들면 Q타입이
아래의 내용은 순수 JPA와 Spring data를 사용했을 때 차이점을 비교하면서 알아보았다.순수 JPA를 통한 repository를 통해 말하고 싶은 것은 코드가 길게 쭉 있다는 부분이다. Spring data를 통해 어떻게 변하는지 확인해보자우리는 spring d
스프링 데이터 JPA 리포지토리는 인터페이스만 정의하고 구현체는 스프링이 자동 생성스프링 데이터 JPA가 제공하는 인터페이스를 직접 구현하면 구현해야 하는 기능이 너무 많음다양한 이유로 인터페이스의 메서드를 직접 구현하고 싶다면 아래와 같은 여러 방법이 있다. 규칙: