Spring - JPA 심화 (CRUD)

Walter Mitty·2022년 5월 26일
0

Spring

목록 보기
12/19

데이터 저장하기(create), 조회하기(read)
만약에 findById(2L)을 적으면 실행시켰을 때 살짝 올려보면 "해당 아이디가 존재하지 않습니다" 라는 에러원인을 볼 수 있다.


Service

  • 스프링의 구조는 크게 3가지 영역으로 나눌 수 있다.
  1. Controller:
    • 가장 바깥 부분, 요청/응답을 처리함.
    • 요청이 들어오면 요청을 받아주는 자동응답기
  2. Service:
    • 중간 부분, 실제 중요한 작동이 많이 일어나는 부분 -> 지금 해볼 부분!
    • DB에서 꺼내오는 녀석과 응답하는 녀석 사이의 연결고리
    • Update는 밖에서 요청이 들어오면 그걸 DB에 전달을 해줘야하는데 이때 Service를 활용 해야한다.
  3. Repo:
    • 가장 안쪽 부분, DB와 맞닿아 있음
      -> 여태 우리가 배운거(Repo, Entity)

Service 만들기
1. course class에 update method 추가!

public void update(Course course) {
    this.title = course.title;
    this.tutor = course.tutor;
}
  1. src > main > java > com.sparta.week02 > service 패키지 생성
  2. CourseService.java 만들기
  3. 3에 코드 추가!
@Service // 스프링에게 이 클래스는 서비스임을 명시
public class CourseService {
		// final: 서비스에게 꼭 필요한 녀석임을 명시
    private final CourseRepository courseRepository;
		// 생성자를 통해, Service 클래스를 만들 때 꼭 Repository를 넣어주도록
		// 스프링에게 알려줌
    public CourseService(CourseRepository courseRepository) {
        this.courseRepository = courseRepository;
    }
    @Transactional // SQL 쿼리가 일어나야 함을 스프링에게 알려줌
    public Long update(Long id, Course course) {
        Course course1 = courseRepository.findById(id).orElseThrow(
                () -> new IllegalArgumentException("해당 아이디가 존재하지 않습니다.")
        );
        course1.update(course);
        return course1.getId();
    }
 }

업데이트 하면 :
update 이후 강의 내용이 바뀐 걸 볼 수 있다.

0개의 댓글