본문 바로가기

☕Java/JPA3

Querydsl 주요 내용 정리 Querydsl을 사용하면 컴파일 시점에 SQL 오류를 잡을 수 있음 Q클래스(타입)를 직접 생성(new)하거나 이미 생성돼 있는 객체를 사용하면 됨 cf) Q클래스는 메타모델 클래스라고도 함. 이는 Criteria API나 Querydsl에서 보편적으로 쓰이는 용어. 보통은 생성된 객체 사용하고, 같은 테이블을 조인해야 하는 경우에만 직접 작성 사용 방법(단건 조회) JPAQueryFactory queryFactory; // 직접 생성하거나 스프링을 통해 주입 queryFactory.select(Q타입).from(Q타입).where(Q타입.필드.eq(조건)).fetchOne(); queryFactory.selectFrom(Q타입).where(Q타입.필드.eq(조건)).fetchOne(); queryFa.. 2024. 3. 27.
스프링 엔티티 매핑 애너테이션 정리 타입 애너테이션 @Entity - JPA에서 엔티티로 관리할 클래스(엔티티명) @Table - 매핑 대상 테이블 관련 설정(테이블명, 카탈로그, 스키마, 유니크 키 제약 조건) @Acces - DB 접근 방식(AccessType.FIELD, AccessType.PROPERTY) 필드 접근은 필드에 직접 접근. private도 접근 가능. 프로퍼티 접근은 getter 이용하여 접근. 필드 애너테이션 @Id - 기본키 @GeneratedValue - 기본키 생성 전략(IDENTITY, SEQUENCE, TABLE) @Column - 칼럼 매핑. 칼럼명과 제약조건들 설정(칼럼명, length, nullable, unique, precision(전체 자릿수), scale(소수 자릿수), columnDefinit.. 2024. 3. 23.
Querydsl 사용을 위한 build.gradle 설정하기 Gradle + JPA + Querydsl 사용을 위해 build.gradle을 작성할 때 많은 경우, 플러그인을 추가하여 사용한다. 특히, 인프런 김영한 님 등 JPA를 전파하시는 분들의 강의 내용에 플러그인을 사용하여 설정하는 방법이 나와 있어서 구글 검색 내용 중 다수가 그렇게 사용하고 있다. 그러나 해당 방법에는 문제가 있다. (아래 프로젝트는 JDK 17, Spring Boot 3.x를 사용합니다.) Bad Case plugins { id 'java' id 'org.springframework.boot' version '3.0.6' id 'io.spring.dependency-management' version '1.1.0'.. 2023. 5. 14.
728x90