본문 바로가기

JPA22

[QueryDSL] 1. 예제 도메인 모델 예제 도메인 모델 1. 예제 도메인 모델과 동작확인 📌 예제 도메인 모델과 동작확인 엔티티 클래스 Member 입장에서 다 수의 회원은 하나의 팀에 소속될 수 있다. → 다(N) 대 일(1) 관계 Team 입장에서 하나의 팀에는 다 수의 회원이 소속될 수 있다. → 일(1) 대 다(N) 관계 ERD 외래키(FK)는 Member가 갖는다. Member 엔티티 @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "username", "age"}) public class Member { @Id @GeneratedValue @Column(name = "member_id") private Lo.. 2023. 5. 26.
[JPQL] 다형성 쿼리, 엔티티 직접 사용, Named 쿼리, 벌크 연산 📌 다형성 쿼리 Album, Movie, Book이 Item을 상속받는 구조 설계. Type 조회 대상을 특정 자식으로 한정 ex. Item 중에 Book, Movie를 조회해라 [JPQL] select i from Item i where type(i) IN (Book, Movie) [SQL] select i from i where i.DTYPE IN ('B', 'M') TREAT(JPA 2.1) 자바 타입 캐스팅과 유사 상속구조에서 부모타입을 특정 자식타입으로 다룰 때 사용 FROM, WHERE, SELECT(Hibernate 지원) 사용 ex. 부모인 Item과 자식 Book이 있다. [JPQL] select i from Item i where treat(i as Book).auther = 'kim'.. 2023. 4. 26.
[JPQL] 경로 표현식, 페치 조인(N+1문제 해결) 📌 경로 표현식 .(점)을 찍어 객체 그래프를 탐색하는 것 select m.username → 상태 필드 from Member m join m.team t → 단일 값 연관 필드 join m.orders o → 컬렉션 값 연관 필드 where t.name ='팀A' 경로 표현식 용어 정리 상태 필드(state field) : 단순히 값을 저장하기 위한 필드 (ex: m.username) 연관 필드(association field) : 연관관계를 위한 필드 단일 값 연관 필드 : @ManyToOne, @OneToOne, 대상이 엔티티(ex: m.team) 컬렉션 값 연관 필드 : @OneToMany, @ManyToMany, 대상이 컬렉션(ex: m.orders) 경로 표현식 특징 상태 필드(state fi.. 2023. 4. 26.
[JPQL] 타입 표현과 기타식, 조건식(CASE 등등), 기타 함수 📌 JPQL 타입 표현과 기타식 문자 : 'HELLO', 'She"s' 숫자: 10L(Long), 10D(Double), 10F(Float) Boolean: TRUE, FALSE ENUM: jpql.MemberType.Admin(패키지명 포함) select m.username, 'HELLO', true from Member m where m.type = jpql.MemberType.ADMIN // 파라미터 바인딩 경우 String query = "select m.username, 'HELLO', true from Member m " + "where m.type = :userType"; List result = em.createQuery(query) .setParameter("userType",Member.. 2023. 4. 25.