일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch5
- jpa 활용2 - api 개발 고급
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch6
- 자바의 정석 기초편 ch2
- 자바의 정석 기초편 ch12
- 스프링 입문(무료)
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch8
- 자바의 정석 기초편 ch11
- jpa - 객체지향 쿼리 언어
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch13
- 스프링 db1 - 스프링과 문제 해결
- 자바의 정석 기초편 ch3
- 자바의 정석 기초편 ch9
- 스프링 mvc2 - 타임리프
- 게시글 목록 api
- 스프링 mvc1 - 서블릿
- 타임리프 - 기본기능
- 2024 정보처리기사 시나공 필기
- 자바의 정석 기초편 ch1
- 코드로 시작하는 자바 첫걸음
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch4
- 2024 정보처리기사 수제비 실기
- 스프링 db2 - 데이터 접근 기술
- 자바의 정석 기초편 ch7
- @Aspect
- Today
- Total
목록인프런 - 스프링부트와 JPA실무 로드맵/자바 ORM 표준 JPA 프로그래밍 - 기본편 (11)
나구리의 개발공부기록
출처 : 인프런 - 자바 ORM 표준 JPA 프로그래밍 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 경로 표현식1) 정의.(점)을 찍어서 객체 그래프를 탐색하는 것상태필드, 단일 값 연관필드, 컬렉션 값 연관필드가 내부적으로 동작방식이 다르기 때문에 구분해서 이해해야함select m.username # 상태 필드 from Member m join m.team t # 단일 값 연관 필드 join m.orders o # 컬렉션 값 연관 필드where t.name = '팀A' 2) 용어 정리(1) 상태 필드(state field)단순히 값을 저장하기 위한 필드(2) 연관 필드(association field)연관관계를 위한 필드(3) 단일 값 연..
출처 : 인프런 - 자바 ORM 표준 JPA 프로그래밍 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 조인join쿼리를 실습 하기 위해 Member와 Team을 양방향 연관관계 매핑을 하고, 연관관계 편의 메서드를 작성하여 값을 생성중복 쿼리 발생 방지를 위해 @ManyToOne 맵핑에 LAZY를 적용 (관련글)1) 내부조인inner 생략 가능// 이너조인 (inner 생략 가능)String query = "select m from Member m inner join m.team t";List result= em.createQuery(query, Member.class) .getResultList();2) 외부 조인left, right 조인을 지원..
출처 : 인프런 - 자바 ORM 표준 JPA 프로그래밍 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 객체지향 쿼리 언어 소개 1) JPQL(1) JPA의 한계JPA를 사용하면 엔터티 객체를 중심으로 개발하고 테이블은 매핑만 하는데 검색을 할 때도 테이블이 아닌 엔터티 객체를 대상으로 검색을 해야 함그러나 모든 DB데이터를 객체로 변환해서 검색하는 것은 불가능하기 때문에 애플리케이션이 필요한 데이터만 DB에서 불러오려면 검색 조건이 포함된 SQL필요함(2) 문제 해결이런 문제를 해결하기 위해 JPA는 SQL을 추상화한 JPQL이라는 객체지향 쿼리 언어를 제공함SQL과 문법이 유사하며, SELECT, FROM, WHERE, GROUP BY, HAVING, JOI..
출처 : 인프런 - 자바 ORM 표준 JPA 프로그래밍 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용** 실전예제 전까지는 DB URL 설정을 test로 설정하여 실습 ** 실전예제는 jdbc.url 설정을 jpashop으로 변경해서 진행1. 기본값 타입1) JPA의 데이터 타입(1) 엔터티 타입@Entity로 정의하는 객체데이터가 변해도 식별자로 지속해서 추적이 가능함ex) 회원 엔터티의 키나 나이 값을 변경해도 식별자로 인식이 가능함(2) 값 타입int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체식별자가 없고 값만 있으므로 변경시 추적이 불가능함ex) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체됨2) 값 타입..
출처 : 인프런 - 자바 ORM 표준 JPA 프로그래밍 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용** 실전예제 전까지는 DB URL 설정을 test로 설정하여 실습 ** 실전예제는 jdbc.url 설정을 jpashop으로 변경해서 진행1. 프록시1) 프록시 기초(1) em.getReference()em.find() 메서드는 DB를 통해서 실제 엔터티 객체를 바로 조회하는 것em.getReference() 메서드는 DB조회를 미루고 가짜(프록시) 엔터티 객체를 조회, 프록시에 값이 없으면 DB에서 값을 조회해옴getReference()메서드를 호출하는 순간 DB와 무관하게 영속성 컨텍스트에 프록시 객체가 생성됨(2) 로그 확인새로운 멤버를 생성하여 persist..
출처 : 인프런 - 자바 ORM 표준 JPA 프로그래밍 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용** 실전예제 전까지는 DB URL 설정을 test로 설정하여 실습 ** 실전예제는 jdbc.url 설정을 jpashop으로 변경해서 진행1. 상속관계 매핑1) 관계형 DB의 상속관계관계형 데이터베이스는 상속관계가 없음슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사함객체의 상속 구조와 슈퍼타입 서브타입 관계를 매핑함(1) 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법각각의 정규화가 잘 된 테이블로 변환 -> 조인 전략통합 테이블로 변환 -> 단일 테이블 전략서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전략2) 주요 애노테이션(1) ..
출처 : 인프런 - 자바 ORM 표준 JPA 프로그래밍 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용** 실전예제 전까지는 DB URL 설정을 test로 설정하여 실습1. 다양한 연관관계 매핑1) 연관관계 매핑 시 고려사항 3가지(1) 다중성다대일: @ManyToOne일대다: @OneToMany일대일: @OneToOne다대다: @ManyToMany다대다는 실무에서 사용하지 않고 다른방식으로 대체해서 사용해야 함(2) 단방향, 양방향테이블은 외래 키 하나로 양쪽 조인이 가능하며 방향이라는 개념이 없음객체는 참조용 필드가 있는 쪽으로만 참조가 가능하며 한쪽만 참조하면 단방향, 양쪽이 서로 참조하면 양방향즉 객체의 양방향 참조는 각 객체가 서로 단방향으로 참조하는 것임..
출처 : 인프런 - 자바 ORM 표준 JPA 프로그래밍 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 연관관계 매핑 기초** 실전예제 전까지는 DB URL 설정을 test로 설정하여 실습 1) 목표객체와 테이블 연관관계의 차이를 이해객체의 참조와 테이블의 외래 키의 매핑 방법2) 용어 이해방향(Direction) : 단방향, 양방향다중성(Multiplicity) : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M)이해연관관계의 주인(Owner) : 객체 양방향 연관관계는 관리주인이 필요함3) 연관관계가 필요한 이유객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다 - 조영호(객체지향의 사실과 오해)테이블 하나로 표현하고자 ..
출처 : 인프런 - 자바 ORM 표준 JPA 프로그래밍 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용Entity 매핑 소개객체와 테이블 매핑 : @Entity, @Table필드와 컬럼 매핑: @Column기본 키 매핑: @Id연관관계 매핑: @ManyToOne, @JoinColumn1. 객체와 테이블 매핑1) @Entity@Entity 애노테이션이 붙은 클래스는 JPA가 관리하며 엔터티라고 부르고 JPA를 사용해서 테이블과 매핑할 클래스는 @Entity가 필수임JPA 스펙상 기본 생성자가 필수임(파라미터가 없는 public or protected 생성자)final 클래스, enum, interface, inner 클래스에는 사용 불가저장할 필드에 final 사용..
출처 : 인프런 - 자바 ORM 표준 JPA 프로그래밍 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 영속성 컨텍스트JPA를 이해하는데 가장 중요한 용어엔터티를 영구 저장하는 환경이라는 뜻EntityManager.persist(entity); -> DB에 저장하는 것이 아니라 엔터티를 영속성 컨텍스트에 저장한다는 뜻1) 엔터티매니저, 영속성 컨텍스트영속성 컨텍스는 논리적인 개념이기에 눈에 보이지 않으며 엔터티 매니저를 통해 영속성 컨텍스트에 접근함엔터티 매니저를 생성하면 1:1로 영속성 컨텍스트가 생성된다고 이해하면 됨되며 스프링 프레임워크같은 컨테이너 환경에서는 엔터티매니저와 영속성 컨텍스트가 N:1로 생성됨2) 엔터티의 생명주기(1) 비영속 (new/tra..