객체지향 쿼리언어 - 중급 문법(2) 객체지향 쿼리언어 - 중급 문법(2) 페치 조인(fetch join) 실무에서 매우 중요하다! SQL 조인 종류가 아니다. JPQL에서 성능 최적화를 위해 제공하는 기능이다. 연관된 엔티티나 컬렉션을 SQL 한 번에 함께 조회하는 기능이다. join fetch 명령어 사용 페치 조인 ::= [ LEFT [OUTER] | INNER ] JOIN FETCH 조인경로 엔티티 페치 조인 회원을 조회하면서 연관툄 팀도 함께 조회(SQL 한 번에 함께 조회) SQL을 보면 회원 뿐만 아니라 팀(T.*)도 함께 SELECT JPQL select m from Member m join fetch m.team SQL select m.*, t.* from member m inner jo..
자바 ORM 표준 JPA 프로그래밍 - 기본편 객체지향 쿼리언어 - 중급 문법(1) 경로 표현식 점을 찍어 객체 그래프를 탐색하는 것 select m.username -- 상태필드 from Member m join m.team t -- 단일 값 연관 필드 join m.orders o -- 컬렉션 값 연관 필드 where t.name = 'teamA' 경로 표현식 용어 정리 및 특징 상태 필드(state field) 단순히 값을 저장하기 위한필드(m.username) 연관필드(association field) 연관관계를 위한 필드 단일 값 연관 필드: @ManyToOne, @OneToOne, 대상이 엔티티(m.team) 컬렉션 값 연관 필드: @OneToMany, @ManyToMany, 대상이 컬렉션(m...
자바 ORM 표준 JPA 프로그래밍 - 기본편 JPQL 기본 문법 select m from Member m where m.age > 18 엔티티와 속성은 대소문자를 구분한다. (Member, age) JPQL 키워드는 대소문자를 구분하지 않는다.(SELECT, FROM, where) 엔티티 이름 사용, 테이블 이름이 아님(Member) 별칭(alias)는 필수(여기서는 Member의 m), as는 생략가능 집합과 정렬 select COUNT(m), SUM(m.age)... from Member m GROUP BY, HAVING 지원 ORDER BY 지원 TypeQuery, Query TypeQuery: 반환 타입이 명확할 때 사용 Query: 반환 타입이 명확하지 않을 때 사용 TypeQuery quer..
자바 ORM 표준 JPA 프로그래밍 - 기본편 JPA는 다양한 쿼리 방법을 지원 JPQL JPA Criteria QueryDSL Native SQL JDBS API, MyBatis, SpringJdbcTemplate JPQL 가장 단순한 조회 방법 JPA를 사용하면 엔티티 객체를 중심으로 개발 문제는 검색 쿼리 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능 Application이 필요한 데이터만 DB에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요 JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공 SQL을 추상화해서 특정 데이터베이스 SQL에 의존 하지 않는다. SQL과 문법 유사, SELECT, FROM, WH..
자바 ORM 표준 JPA 프로그래밍 - 기본편 값 타입 JPA의 데이터 타입 분류 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 실별자로 지속해서 추적가능 ex) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 값 타입 int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적이 불가능하다. ex) 숫자 100을 200으로 변경하면 완전히 다른값으로 대체 값 타입은 복잡한 객체 세상을 조금이라도 단순화하려고 만든 개념이다. 값 타입은 단순하고 안전하게 다룰 수 있어야한다. 값 타입 분류 기본값 타입 자바 기본 타입(int, double..) 래퍼(wrapper) 클래스(Integer, Long) String ..
- Total
- Today
- Yesterday
- 맥 팀즈 캐시 삭제
- ORM
- vue
- Vue.js
- ES6
- 맥 포트 죽이기
- javascript
- frontend
- SOLID원칙
- http
- 코딩테스트
- 템플릿 메서드 패턴
- Mackbook
- Design Pattern
- 포트충돌
- JPA
- Spring
- 팀즈
- 코테
- Backend
- 이펙티브 자바
- effetive java
- 맥북 키보드 딜레이
- 팀즈 느려짐
- http header
- 디자인패턴
- 알고리즘
- 프로그래머스
- java
- HTTP body
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |