티스토리 뷰

package study.datajpa.controller;

import jakarta.annotation.PostConstruct;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import study.datajpa.entity.Member;
import study.datajpa.repository.MemberRepository;

@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();
    }

    @PostConstruct
    public void init(){
        Member member = new Member("member1");
        memberRepository.save(member);
    }
}

 

data JPA에서는 findMember2처럼 id일 경우 아예 객체로 받을 수 있다. 그 과정에서 엔티티 조회를 호출해서 값도 채워넣는다. 하지만 이는 Tranjection 밖에서 일어난 일이기 때문에 수정이 불가하다.

 

또 눈으로 봐도 이해하기 힘든 기능이기에 실무에서 그닥 사용되지 않는다. 조금 위험한 방식이라는 생각이 든다. id가 아니면 사용할 수 없기도하고 명확해 보이지가 않는다. 또 예외상황에서 어떻게 처리할지도 고민해봐야한다.. 딱 조회용으로만 사용해야한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
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 31
글 보관함