Pageable 이 Pagination 요청 정보를 담기위한 추상 인터페이스 라는 의미/실제로 쓰기 위해서는 구현체가 필요하다
class QPageRequest : QueryDSL 을 위한 Pageable 구현체
class PageRequest : 가장 기본적인 Pageable 구현체
enum Unpaged : pagination 정보가 없는 것을 표현하기위한 구현체. INSTANCE 를 가지고 있다.
이 중 가장 기본이 되는 PageRequest 를 가장 많이 사용 (보통 Cusotom Query를 사용해서 같이 사용함.)
Asynchronos Javascript And XML의 약자로 비동기식으로 서버와 통신하는 방식을 의미합니다.
따라서 다대다 관계의 연결다리 역할을 하는 조인 테이블을 추가한다.
이 때, 다대다 매핑은 연결 테이블에 단순히 매핑 정보만 넣을 수 있다. 추가 정보를 넣을 수 없다.
하지만 실무에서는 추가 정보를 넣어야 할 때가 있다. :
객체는 다대다 관계를 표현할 수 있으나, 관계형 데이터베이스는 정규화된 테이블 두 개로 다대다 관계를 표현할 수 없다.
따라서 다대다 관계의 연결다리 역할을 하는 조인 테이블을 추가한다.
이 때, 다대다 매핑은 연결 테이블에 단순히 매핑 정보만 넣을 수 있다. 추가 정보를 넣을 수 없다.
하지만 실무에서는 추가 정보를 넣어야 할 때가 있다.
@ManyToMany를 이용해서 다대다 관계로 표현하지 않고,
양 끝단에서 @OneToMany로 연결테이블과 연결하고,
연결 테이블의 엔티티에서는 양 끝의 엔티티를@ManyToOne로 매핑하여 중간다리 역할을 하도록 한다.