2025/04/24 4

[자바 ORM 표준 JPA 프로그래밍] 10-5. 객체지향 쿼리 언어: 객체지향 쿼리 심화

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 1. 벌크 연산수백개의 엔티티 수정을 하기 위해 각각 상태를 변경할 경우 너무 오래걸림이를 위해 여러 건을 한번에 처리하는 벌크 연산을 지원함 예제)더보기@Test@Transactionalvoid bulk_operation() { String selectJpql = "select u from User as u"; List result = entityManager.createQuery(selectJpql, User.class).getResultList(); long start1 = System.currentTimeMillis(); for (User user : result) user.setName("upd..

[자바 ORM 표준 JPA 프로그래밍] 10-4. 객체지향 쿼리 언어: Native SQL

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 1. Native SQLJPA는 JPQL이 아닌 DB 고유의 SQL 문법을 직접 사용하는 방법을 지원합니다.결과 매핑 어노테이션을 사용하여 응답을 정의할 수 있습니다. 사용 상황상황이유복잡한 조인 / 서브쿼리JPQL로 표현하기 어려운 경우DB 특화 기능 사용예: 윈도우 함수, 특정 DB 함수 등성능 최적화JPQL보다 효율적인 쿼리 필요 시기존 SQL 자산 재사용DB에 이미 작성된 쿼리를 그대로 쓰고 싶을 때 예제) Native SQL더보기@Test@Transactionalvoid native_query_entity() { String sql = "SELECT ID, NAME, NICKNAME, AGE, TEAM_ID ..

[자바 ORM 표준 JPA 프로그래밍] 10-2. 객체지향 쿼리 언어: Criteria

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 1. CriteriaJPQL을 편하게 작성하도록 도와주는 빌더 클래스 모음컴파일 시점에 오류를 발견할 수 있음동적 쿼리를 작성하기 편함 2. 기초항목설명CriteriaBuilderCriteria 쿼리 생성을 위한 시작점CriteriaQuery쿼리 전체 구조를 담는 객체Root조회의 시작점 (FROM 절)PredicateWHERE 조건 표현OrderORDER BY 정렬 표현 예제더보기CriteriaBuilder cb = entityManager.getCriteriaBuilder();CriteriaQuery query = cb.createQuery(User.class);Root u = query.from(User.class);q..

[자바 ORM 표준 JPA 프로그래밍] 10-1. 객체지향 쿼리 언어: JPQL

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 1. JPQL객체 지향 쿼리SQL 추상화실행 시점에 SQL 문을 생성하여 요청함 예제) JPQL ➡️ SQL더보기// 쿼리 생성String jpql = "select m from Member as m where m.username = 'kim'";List resultList = em.createQuery(jpql, Member.class).getResultList(); 특징구분설명기본 문법SQL과 유사한 문법 사용 (SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY 등)- 엔티티명과 필드 사용, 별칭 필수쿼리 객체 API- TypedQuery: 반환 타입 명확할 때- Query: 반환 타입..