[JPA] Web 지원기능

Junseo Kim·2020년 3월 30일
0

DomainClassConverter

PathVariable 또는 RequestParameter로 들어오는 도메인의 Id값은 도메인으로 변환받아서 파라미터로 받을 수 있다.

Converter는 하나의 타입을 다른 타입으로 변환해주는 것이다.(ex. Long -> entity)

DomainClassConverter에는 ToIdConverterToEntityConverter가 있다.

따라서 Controller에서 findById로 repository에서 entity를 가져오는 절차가 자동으로 이루어질 수 있다.

아래의 두 코드는 같은 코드이다. 위의 코드가 DomainClassConverter에 의해 자동으로 id로 엔티티를 가져오는 코드이다.

Pageable & Sort 매개변수

Pageable / sort를 매개변수로 받아 바인딩 해준다.

sort도 넘겨줄 수 있다. 보통 Pageable로 sort까지 다룰 수 있다.

Hateoas

resource를 요청했을 때, resource와 관련이 있는 link 정보를 같이 보내준다.

Hateoas를 사용하려면 의존성을 넣어줘야한다.

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-hateoas</artifactId>
        </dependency>

PagedResourcesAssembler를 매개변수로 받아서 사용할 수 있다.

PagedResourcesAssembler의 타입으로 엔티티를 주고, 그 타입의 EntityModel을 만들어주는 것이다.

PagedResourcesAssembler의 toModel은 Page를 받는다. 따라서 아래의 코드를 합쳐 놓은 코드가 위의 코드이다.

이렇게 하면, 이전페이지의 링크, 다음페이지의 링크 등 페이지와 관련있는 link들을 다 받아온다.

0개의 댓글