본문 바로가기
반응형

JPA 쿼리6

JPA 쿼리 JPQL 벌크 연산 - -안녕하세요? 오늘은 JPA의 JPQL 중 벌크 연산에 대해 알아보도록 하겠습니다.-벌크 연산: 쿼리 한번으로, 여러 테이블 로우 변경: executeUpdate의 결과는 영향받은 엔티티 수를 반환: Update / Delete 지원: 하이버네이트는 Insert ( insert into .. select ) 지원샘플 쿼리)EntityManagerFactory emf = Persistence.createEntityManagerFactory("유닛명");EntityManager em = emf.createEntityManager();EntityTransaction tx = em.getTransaction();tx.begin();// Flush 자동 호출 : commit / [쿼리날라갈때] / 강제호출St.. 2024. 10. 24.
JPA 쿼리 패치 조인 JPQL FETCH JOIN - -안녕하세요? 오늘은 JPA에서 JPQL 패치(FETCH) 조인 에 대해 알아보도록 하겠습니다. -페치 조인 ★★★(FETCH JOIN): SQL 조인 종류가 아니라, JPQL에서 성능최적화를 위해 제공: 연관된 엔티티나 컬렉션을 SQL 한번에 함께 조회JPQLSELECT e FROM 엔티티 e JOIN FETCH e.연관관계객체 sSQLSELECT t1.*, t2.* FROM 테이블1 as t1INNER JOIN 테이블2 as t2ON t1.key = t2.key+예로 들어서, Member 엔티티와, Team 엔티티가 존재하고, Member는 Team과 다대일 [N:1] 연관관계라고 가정했을 때멤버 엔티티 생성)@Entitypublic class Member {    @Id @GeneratedVal.. 2024. 10. 24.
JPA JPQL 경로 표현식 - -안녕하세요? 오늘은 JPA에서 JPQL의 경로 표현식 에 대해 알아보도록 하겠습니다. -경로 표현식: 점(.)을 찍어 객체 그래프를 탐색하는 것: 상태필드 / 연관필드로 나눠진다.상태필드(state field)경로 탐색의 끝, 더이상 탐색 불가연관필드(accociation field)단일 값 연관필드@ManyToOne, @OneToOne, 대상이 엔티티컬렉션 값 연관필드@OneToMany, @ManyToMany, 대상이 컬렉션+상태필드: SELECT e.컬럼 FROM 엔티티 e> 경로 탐색의 끝>> 추가 탐색 불가+단일값 연관필드(@ManyToOne, @OneToOne): SELECT e.단일연관관계객체 FROM 엔티티 e> 묵시적 내부 JOIN 발생> 추가 탐색 가능+컬렉션값 연관필드(@OneTo.. 2024. 10. 23.
JPA JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수 - -안녕하세요? 오늘은 JPA의 JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수 에 대해서 알아보도록 하겠습니다. JPQL 타입 표현: 문자는 싱글쿼테이션 사용: 숫자/불리언 타입은 자바와 동일: enum은 패키지명을 포함해야한다.> 파라메터에 셋팅해서 사용 가능: 엔티티 타입은, 상속관계에서 사용한다.타입 표현예제문자'HELLO', 'She''s'숫자10L(Long), 10D(Double), 10F(Float)BooleanTRUE, FALSEENUMjpabook.MemberType.Admin (패키지명 포함)엔티티타입TYPE(m) = Member (상속 관계에서 사용)샘플코드)String jpql = "SELECT e.컬럼, 'TEST', true FROM 엔티티 e"            +.. 2024. 10. 18.
JPA 쿼리 JPQL 페이징 조인 서브쿼리 - -안녕하세요? 오늘은, JPA의 쿼리 방법 중 하나인, JQPL에 대해 알아보도록 하겠습니다.  JPQL(Java Persistence Query Language) : 객체지향 쿼리 언어: 테이블 대상이 아닌,엔티티를 대상으로 쿼리: SQL을 추상화 > 특정 DB에 의존하지 않음: JPQL은 결국 SQL로 변환샘플 예시)select 문 :: =select_절from_절[where_절][groupby_절][having_절][orderby_절]update_문 :: = update_절 [where_절]delete_문 :: = delete_절 [where_절] 사용법 : 엔티티와 속성은 대소문자 구분이 필수: JPQL 키워드는 대소문자 구분 불필요: 엔티티 이름 사용> 테이블 이름 X: 별칭(Alias)은 .. 2024. 10. 18.
JPA QueryDSL 네이티브SQL JDBC MyBatis - -안녕하세요? 오늘은 JPA의 다양한 쿼리 방법에 대해서 알아보도록 하겠습니다. JPA에서는,JPQL ★★★JPQ CriteriaQueryDSL ★★★네이티브 SQLJDBC 직접 사용(MyBatis, SpringJdbcTemplate ...)등등 다양한 쿼리 방법을 지원합니다.그 중에서, JPQL에 대해서, 다뤄보도록 하겠습니다.JQPL ★★★: JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공: SQL과 문법이 유사 (SELECT / FROM / WHERE / GROUP BY / HAVING / JOIN): JPQL은 엔티티 객체  대상으로 쿼리 (SQL은 데이터 베이스 테이블을 대상으로 쿼리): 가장 단순한 조회 방법: 특정 DB SQL에 의존하지 않음: JPA를 사용하면, 엔티.. 2024. 10. 18.
반응형