JPA는 persistence라는 클래스가 있는데
먼저 설정정보를 조회에서 EntityManagerFactory라는 클래스를 만든다.
이떄 필요할떄 EntityManager라는 객체를 만들어 사용한다.
주의할점은
- EntityManagerFactory는 하나만 생성해서 애플리케이션 전체에서 공유한다.
- EntityManager는 쓰레드간에 공유X(사용하고 버려야한다.)
- JPA의 모든데이터 변경은 트랜잭션 안에서 실행해야한다.
JPQL 소개
가장 단순한 조회방법 : em.find(), 객체그래프탐색(findmember.getId())
하지만 나이가 18살 이상인 회원을 모두 검색한다면? JPQL을 사용!
페이징 할떄 유용하다.
JPA를 사용하면Entiry 객체를 중심으로 개발
문제는 검색 쿼리인데 모든 DB데이터를 객체로 변환해서 검색하는것이 불가능하다.
애플리케이션에서 필요한 데이터만 DB에서 불러오려면 검색조건이 필요한 SQL이 필요하다. 그래서 JPQL라는것이 생겨났고
JPQL로 검색할떄 테이블이 아닌 엔티디 객체를 대상으로 검색이 가능
JPQL은 SQL을 추상화했기때문에 특정SQL에 의존하지않는 객체 지향 쿼리언어로 SQL과 유사한데 둘의 차이는
JPQL은 엔티티 객체를 대상으로 쿼리문 작성 (이는 DB의 변동에대해 기존 쿼리문을 수정할필요없다는 장점이있다)
SQL은 DB의 테이블을 대상으로 쿼리문 작성
'𝗦𝗣𝗥𝗜𝗡𝗚 > 𝐎𝗥𝗠-𝗝𝗣𝐀' 카테고리의 다른 글
고급 매핑 (1) | 2024.01.03 |
---|---|
다양한 연관관계 매핑 (0) | 2024.01.03 |
연관관계 매핑 기초 (0) | 2024.01.03 |
엔티티 매핑 (0) | 2024.01.02 |
JPA 영속성 컨텍스트 (0) | 2023.12.27 |