JPQL

프로젝트/커뮤니티

[프로젝트] 커뮤니티 REST API 서버만들기 #4 Board API만들기

이번에는 Board 게시판을 추가하였다. 뿐만 아니라 이미지 업로드 기능도 추가하였다. 이후 성능최적화를 위하여 N+1문 제도 해결하였는데, 아래에 자세한 설명이 있다. 이번에 포스팅은 중요한 것 위주로 설명되어 있다. SecurityConfig @EnableWebSecurity @Configuration @RequiredArgsConstructor public class SecurityConfig { private final TokenProvider tokenProvider; private final CorsFilter corsFilter; private final JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint; private final JwtAcc..

JPA

페치 조인

페치 조인(fetch join) 페치 조인이란 SQL 조인의 종류가 아니며, JPQL에서 성능 최적화를 위해서 제공해주는 기능이다. 페치 조인은 엔티티를 조회할 때 연관된 엔티티나 컬렉션을 한 번의 SQL로 함께 조회하는 기능을 제공함으로써 N+1문제를 해결할 수 있게 도와준다. 일반 조인은 실행 시 연관된 엔티티를 함께 조회하지 않는다. 단지 데이터베이스 상에서 테이블간의 탐색을 위해 사용되는 것이다. 아래와 같은 코드가 있다고 하자. @Entity @Data public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private int age; ..

JPA

JPQL 사용법

JPQL(Java Persistence Query Language) JPQL은 SQL을 추상화하여 특정 데이터베이스 SQL에 의존적이지 않은 객체지향 쿼리 언어이다. 테이블을 대상으로 쿼리를 하는 것이 아닌 객체(엔티티)를 대상으로 쿼리를 하기에 객체지향 쿼리 언어라고 불린다. JPQL은 결국 SQL로 변환되어 데이터베이스에 전달된다. ex) select m from Member as m where m.age > 20 엔티티와 속성은 대소문자를 구분한다. (Member, age) JPQL 키워드는 대소문자를 구분하지 않는다. (SELECT, select 모두 가능) 테이블이 아닌 엔티티의 이름을 사용한다. (Member) 별칭은 필수다. (m) (as는 생략 가능) EXISTS, IN, AND, OR, ..

javajoha
'JPQL' 태그의 글 목록