개발/JPA

개발/JPA

JPQL 중급 문법

2023. 02.07 18:20 복습 시작 이제 상대적으로(?) 저번 시간보다 좀 더 난이도 있는 JPQL 문법에 대해 알아보겠다. JPQL 경로 표현식 JPQL에서 사용하는 경로 표현식을 알아보고 경로 표현식을 통한 묵시적 조인도 알아보자. 경로 표현식이라는 것은 쉽게 이야기해서 .(점)을 찍어 객체 그래프를 탐색하는 것이다. select m.username -> 상태 필드 from Member m join m.team t -> 단일 값 연관 피드 join m.orders o -> 컬렉션 값 연관 필드 where t.name = '팀A' 경로 표현식 용어를 정리해보자. 상태 필드(state field) : 단순히 값을 저장하기 위한 필드 (ex: m.username) 연관 필드(association f..

개발/JPA

JPQL 기본 문법

2023. 02.07 17:40 복습 및 정리 시작 JPA는 복잡한 검색 조건을 사용해서 엔티티 객체를 조회할 수 있는 다양한 쿼리 기술을 지원한다. 우리는 이제 그중에서도 제일 중요하고 기본이 되는 JPQL에 대해서 알아보겠다. JPQL JPQL은 객체지향 쿼리 언어다. JPA를 사용하는 사람들은 필수로 JPQL을 학습해야 한다. 우리가 JPA를 개발하다 보면 em.find()메소드로는 복잡한 검색 쿼리를 데이터베이스에 보낼 수 없다. 따라서 애플리케이션이 필요한 데이터만 데이터베이스에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요하다. 또한 우리는 ORM을 사용해 데이터베이스 테이블이 아닌 엔티티 객체를 대상으로 개발하므로 검색도 테이블이 아닌 엔티티 객체를 대상으로 하는 방법이 필요하다. 즉 ..

개발/JPA

값 타임

2023. 02.07 17:00 복습 및 정리 시작 JPA는 데이터 타입을 크게 두 분류로 나눌 수 있다. 엔티티 타입 @Entity로 정의하는 객체다. 데이터가 변해도 식별자로 지속해서 추적이 가능하다. 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능하다. 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체다. 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체된다. 값 타입은 또 크게 3가지로 나눌 수 있다. 기본 값 타입 : 자바 기본 타입, 래퍼 클래스, String 임베디드 타입 : 복합 값 타입 컬렉션 값 타입 이제 차근 차근 알아보겠다. 우선 아래 예제 코드를 살펴보자. @Entity public class Member{ @Id..

개발/JPA

영속성 전이, 고아 객체

2023. 02.07 16:30 복습 시작 이번 시간에는 영속성 전이와 고아 객체에 대해 학습해보겠다. 영속성 전이 : CASCADE 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶으면 영속성 전이 기능을 사용해야 한다. JPA는 CASCADE 옵션으로 영속성 전이를 제공한다. 쉽게 말해서 영속성 전이를 사용하면 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장할 수 있다. 예를 들어 일대다 단방향 부모와 자식 연관 관계가 있다고 생각해보자. 코드는 아래와 같다. (부모 : 자식, 1 : N) @Entity public class Parent{ @Id @GeneratedValue private Long id; @OneToMany(mappedBy = "parent") pri..

Debin
'개발/JPA' 카테고리의 글 목록 (2 Page)