728x90

2023/07/18 4

JPA - 경로 표현식

- 경로 표현식 1. .(점)을 찍어 객체 그래프를 탐색하는 것이다. select m.username -> 상태 필드 from Member m join m.team t -> 단일 값 연관 필드 join m.orders o -> 컬렉션 값 연관 필드 where t.name = '팀A - 경로 표현식 용어 정리 1. 상태 필드(state field): 단순히 값을 저장하기 위한 필드 - ex) m.username 2. 연관 필드(association field): 연관관계를 위한 필드 2.1. 단일 값 연관 필드: @ManyToOne, @OneToOne, 대상이 엔티티 (ex: m.team) 2.2. 컬렉션 값 연관 필드: @OneToMany, @ManyToMany, 대상이 컬렉션 (ex: m.orders)..

Programming/JPA 2023.07.18

JPA - 기본 문법 (조건식(CASE 등등), JPQL 함수)

- 조건식 - CASE 식 - 기본 CASE 식 // 기본 case문 String query = "select " + "case when m.age = 60 then '경로요금' " + " else '일반요금' " + "end " + "from Member m"; List result = em.createQuery(query, String.class) .getResultList(); for (String s : result) { System.out.println("s = " + s); } - COALESCE : 하나씩 조회해서 null이 아니면 반환 //coalesce String query = "select coalesce(m.username, '이름 없는 회원') from Member m"; List..

Programming/JPA 2023.07.18

JPA - 기본 문법 (조인, 서브쿼리, 타입 표현과 기타식)

- 조인 1. 내부 조인 : SELECT m FROM Member m [INNER] JOIN m.team t 2. 외부 조인 : SELECT m FROM Member m LEFT [OUTER] JOIN m.team t 3. 세타 조인 : select count(m) from Member m, Team t where m.username = t.name - 조인 - ON 절 1. 조인 대상 필터링 2. 연관관계 없는 엔티티 외부 조인 1. 조인 대상 필터링 - ex) 회원과 팀을 조인하면서, 팀 이름이 A인 팀만 조인 - JPQL SELECT m, t FROM Member m LEFT JOIN m.team t on t.name = 'A' - SQL SELECT m.*, t.* FROM Member m LEF..

Programming/JPA 2023.07.18

JPA - 기본 문법과 기능 (기본 문법, 프로젝션, 페이징)

- JPA는 다양한 쿼리 방법을 지원한다. 1. JPQL 2. QueryDSL 3. JDBC API 직접 사용, MyBaits, SpringJdbcTemplate 함께 사용 - JPQL 1. JPA를 사용하면 엔티티 객체를 중심으로 개발한다. 2. 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색한다. 3. JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어를 제공한다. 4. SQL과 문법이 유사하다. SELECT, FROM, WHERE GROUP BY, HAVING, JOIN 지원 5. JPQL은 엔티티 객체를 대상으로 쿼리 6. SQL은 데이터베이스 테이블을 대상으로 쿼리 //검색 String jpql = "select m From Member m where m.name like ..

Programming/JPA 2023.07.18
728x90