spring data jpa : web extension - domain class converter, paging, sort

This commit is contained in:
haerong22
2021-09-03 00:03:22 +09:00
parent aace14b55d
commit d53f56ba7b
3 changed files with 57 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
package com.example.springdatajpa.controller;
import com.example.springdatajpa.dto.MemberDto;
import com.example.springdatajpa.entity.Member;
import com.example.springdatajpa.repository.MemberRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.PostConstruct;
@RestController
@RequiredArgsConstructor
public class MemberController {
private final MemberRepository memberRepository;
@GetMapping("/members/{id}")
public String findMember(@PathVariable("id") Long id) {
Member member = memberRepository.findById(id).get();
return member.getUsername();
}
@GetMapping("/members2/{id}")
public String findMember2(@PathVariable("id") Member member) {
return member.getUsername();
}
// http://localhost:8080/members?page=1&size=3&sort=age,desc 사용 가능
@GetMapping("/members")
public Page<MemberDto> list(@PageableDefault(size = 5, sort = "username") Pageable pageable) {
return memberRepository.findAll(pageable).map(MemberDto::new);
}
@PostConstruct
public void init() {
for (int i = 0; i < 100; i++) {
memberRepository.save(new Member("member" + i, i));
}
}
}

View File

@@ -1,5 +1,6 @@
package com.example.springdatajpa.dto;
import com.example.springdatajpa.entity.Member;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -10,4 +11,9 @@ public class MemberDto {
private Long id;
private String username;
private String teamName;
public MemberDto(Member member) {
this.id = member.getId();
this.username = member.getUsername();
}
}

View File

@@ -12,6 +12,12 @@ spring:
hibernate:
# show_sql: true
format_sql: true
data:
web:
pageable:
default-page-size: 10
max-page-size: 2000
# one-indexed-parameters: true
logging.level:
org.hibernate.SQL: debug