Notice
Recent Posts
Recent Comments
Link
«   2026/09   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

helloworld

jpa / id값으로 유저정보 가져오기 본문

restful

jpa / id값으로 유저정보 가져오기

hellojava 2023. 8. 24. 22:12

전 글에서는 모든 유저의 정보를 가져왔다.

 

이번엔 한 명의 유저 정보를 가져와보자..

 

jpa를 사용하기때문에 비슷비슷하다 ..

 

우선 restAPI를 하는 과정이기 때문에 

@GetMapping("/users/{id}")

요청은 똑같다.

 

가변변수를 사용하기 때문에 파라미터를 받을 때에 @Pathvariable 어노테이션을 붙여준다.

 

public EntityModel<Optional<User>> retrieveUser(@PathVariable int id) {
Optional<User> user = userRepository.findById(id);

Optional이 붙은 이유와 EntityModel을 붙인 이유를 간단히 말하자면 

 

저번에 포스팅했던 HATEOAS 기능을 사용하기 위해 EntityModel이  리턴값으로 붙었고

 

Optional은 안쓰면 에러난다 ㅋㅋ 왜냐하면 findById 메서드를 가보면 

 

Optional<T> findById(ID id);

반환값이 Optional이기 때문이다 ㅋㅋ Optional은 어려운 것은 아니고 내가 알기론 Null값 체크해주는 좋은 녀석이다..

아마도 NullPointerExceoption을 안나게 해주는..? 아닐수도..

 

아무튼 이녀석 때문에 해테오스 쓸때도 조금 헷갈렸다.

 

//hateoas
EntityModel<Optional<User>> model = EntityModel.of(user);
WebMvcLinkBuilder linkTo = linkTo(methodOn(this.getClass()).retrieveAllUsers());
model.add(linkTo.withRel("all-users"));

당연하게도 EntityModel<user> model = ~~~ 이런식으로 코드를 적었는데 빨간줄 떠서 확인해보니 Opional 붙이라고 하더군..

아무튼 해테오스도 작업을 해주고 실행 시켜주면 

 

깰꼼..

'restful' 카테고리의 다른 글

jpa/ insert  (0) 2023.08.24
jpa / delete 기능  (0) 2023.08.24
jpa crud기능 사용(select)  (0) 2023.08.24
jpa/ h2  (0) 2023.08.24
HATEOAS  (0) 2023.08.17