save()를 통한 update문 사용하기
package com.kh.iMMUTABLE.repository;
import com.kh.iMMUTABLE.entity.Qna;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface QnaRepository extends JpaRepository<Qna, Long> {
Qna findByQnaId(int qnaId);
}
//QnaRepository
기본 findById는 long문이므로 int를 받을 수 있는 쿼리문을 작성해준다.
@Service
@Transactional
@Slf4j
@RequiredArgsConstructor
public class QnaService {
private final QnaRepository qnaRepository;
public boolean upLoadReply(int qnaId,String qnaStatue,String qnaReplay) {
System.out.println("서비스 : " + qnaReplay);
Qna qna = qnaRepository.findByQnaId(qnaId);
qna.setQnaStatus(QnaStatus.valueOf(qnaStatue));
qna.setReply(qnaReplay);
qnaRepository.save(qna);
return true;
}
//QnaService
repository에서 작성한 findByQnaId를 통해 입력받은 id값으로 컬럼을 찾는다.
후에 Setter를 통해 상태 및 내용을 새로 작성하여 .save()를 통하여 저장해준다.
@RestController
@Slf4j
@CrossOrigin(origins = "http://localhost:3000")
@RequestMapping("/admin")
@RequiredArgsConstructor
private final QnaService qnaService;
@PostMapping("/qnaUpload")
public ResponseEntity<Boolean> qnaupload(@RequestBody Map<String, String> qnaData) {
int qnaId = Integer.parseInt(qnaData.get("qnaId"));
String qnaStatue= qnaData.get("qnaStatue");
String qnaReplay = qnaData.get("qnaReplay");
System.out.println(qnaId);
System.out.println("컨트롤러 : " + qnaReplay);
boolean result = qnaService.upLoadReply(qnaId,qnaStatue,qnaReplay);
return new ResponseEntity<>(result, HttpStatus.OK);
}