티스토리 뷰
스프링 실행시 패키지 위치가 매우 중요하다. 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 |
댓글