** JPA 내용 중요함!!
참고블로그
JPA : Java Persistence API
- 데이터를 활용할 때 SQL에서 데이터를 직접 수정하는 것은 번거롭기 때문에 웹서버와 DBA 사이에서 코드로 데이터를 관리 할 수 있게 해줌
=> 웹서버와 DBA 사이에서 데이터를 자동으로 매핑(연결) 처리해주는 것을 ORM이라고 하며 -> JPA는 Java ORM 기술의 대표적인 표준 명세 -> JPA를 구현한 프레임워크의 표준이 하이버네이트
요약

- ORM(Object-Relational Mapping) : 객체 관계 매핑
=> 객체와 DB를 매핑 해주는 도구
=> SQL문이 아닌 메서드를 통해 조작 가능
- Jpa(Java Persistence API) : 자바 ORM의 표준명세
=> JAVA 진영에서 사용하는 ORM, 프레임워크로 Hibernate, OpenJPA 등이 있음
- Hibernate : Jpa를 구현한 프레임워크 중 사실상 표준
예시
Page<Product> findAllByUserAndProductFolderList_FolderId(User user, Long folderId, Pageable pageable);
- 실행되는 쿼리문
-> 실제로 보이는 내용은 메서드만 있으나 실행하면 아래와 같은 쿼리문을 생성하여 DB를 조작함
Hibernate:
/* <criteria> */ select
p.id,
p.title as product_title,
pf.product_id,
pf.folder_id
from
product p left join product_folder pf
on p.id = pf.product_id
where p.user_id = 1
and
pf.folder_id =3
order by p.id
limit 10, 10;