티스토리 뷰

TIL(Today I Learn)

TIL 220520

minji_6119 2022. 5. 21. 00:23

스프링 실행시 패키지 위치가 매우 중요하다. controller 패키지를 com.example 파일 밖으로 빼놓아서 실행이 안 돼 고생했다.

 

@PostMapping("/api/persons")
    public Person createPerson(@RequestBody PersonRequestDTO requestDTO){
        Person person = new Person(requestDTO);
        
        return personRepository.save(person); //
    }

repository의 save 함수는 입력받은 인스턴스를 리턴한다.

 

@Transactional // SQL 쿼리가 일어나야 함을 스프링에게 알려줌, 자동으로 sql에 저장
    public Long update(Long id, CourseRequestDto requestDto) { //매개변수는 update를 수행할 id와 변결될 domain을 넣어줌
        Course course1 = courseRepository.findById(id).orElseThrow(
                () -> new IllegalArgumentException("해당 아이디가 존재하지 않습니다.")
        );
        course1.update(requestDto); //Course 객체의 멤버 메소드인 update를 사용해서 데이터 변경
        return course1.getId();
    }

service 패키지 내에 존재하는 update 메소드는 SQL쿼리가 일어나는 함수. 데이터 탐색. course 인스턴스 내 update ㅔ멤버 변수는 course의 값을 바꿔주기 위한 함수. 

private final PersonRepository personRepository;
private final PersonService personService;

@PutMapping("/api/persons/{id}")
    public Long updatePerson(@PathVariable Long id, @RequestBody PersonRequestDTO requestDTO){
        return personService.update(id, requestDTO);
    }

updatePerson의 id는 url에서 받는다. @RequestBody는 내가 보내주는 데이터.

'TIL(Today I Learn)' 카테고리의 다른 글

TIL 220527  (0) 2022.05.27
TIL 220526  (0) 2022.05.26
TIL 220518  (0) 2022.05.19
TIL 220517  (0) 2022.05.18
WIL 1주차(Week I Learn)  (0) 2022.05.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함