Spring Framework

타임라인서비스) Service 만들기

na_o 2021. 7. 21. 18:19
728x90
/*MemoService.java*/

package com.sparta.week03.service;

import com.sparta.week03.domain.Memo;
import com.sparta.week03.domain.MemoRepository;
import com.sparta.week03.domain.MemoRequestDto;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import javax.transaction.Transactional;

@Service //서비스단인 것을 스프링에게 알려줘야함
@RequiredArgsConstructor
public class MemoService {

    private final MemoRepository memoRepository; //꼭 필요하기 때문에 final
                                                 //-> @RequiredArgsConstructor 필요

    @Transactional //DB에 실제로 반영이 되어야 한다는 것을 알려줘야함
    public Long update(Long id, MemoRequestDto requestDto) {

        //NullPointerException : 찾는 대상이 없다/ 가리키는게 없다
        //IllegalArgumentException : 전달받은 매개변수의 값이 잘못 됐다
        Memo memo = memoRepository.findById(id).orElseThrow(
                () -> new NullPointerException("해당 ID를 가진 데이터가 없습니다.")
        );
        memo.update(requestDto); /*Memo.java*/
        return memo.getId();
    }
}
/*Memo.java*/

package com.sparta.week03.domain;

...

@NoArgsConstructor
@Getter
@Entity 
public class Memo extends Timestamped {

	...
    
    public void update(MemoRequestDto requestDto) {
        this.username = requestDto.getUsername();
        this.contents = requestDto.getContents();
    }
}

'Spring Framework' 카테고리의 다른 글

Javascript 기초 - 1  (0) 2021.07.21
타임라인서비스) Controller 만들기  (0) 2021.07.21
타임라인서비스) Repository 만들기  (0) 2021.07.21
API - POST, PUT, DELETE  (0) 2021.07.21
API-GET  (0) 2021.07.18