0503 수업내용

Glen(OH TaekJoo)·2023년 5월 3일
0

Study

목록 보기
13/53
post-thumbnail

0503 수업 내용

스프링부트 테스트 / 데이터 수정,삭제,생성

  • 테스트 실행방법 / 메인페이지 실행종료 후 테스트 실행하고 메인 실행

findAll== 저장된 데이터 전체 조회

findById== 저장된 ID 값 조회

Optional<>= NULL 값을 허용하는 것 / List<>는 널값 허용 X

findBySubject == 서브젝트 값 조회

findBySubjectAndContent == 서브젝트,컨텐츠 데이터 조회

findBySubjectLike== 서브젝트에 특정 문자열이 포홤된 데이터 조회

isPresent == 값이 있는지 확인

  • 질문 데이터 수정
    Optional oq = this.questionRepository.findById(1);
    //oq 옵셔널 객체에 1번 아이디를 가진 퀘스쳔 데이터 삽입
    assertTrue(oq.isPresent());
    // 위에 번호를 불러올 수 있는지 없지(진실거짓) 판단
    Question q = oq.get();
    // 퀘스쳔 q 는 op.get();
    q.setSubject("수정된 제목");
    //q 에 서브젝트를 "수정된 제목" 으로 수정
    this.questionRepository.save(q);
    // 수정된 q 를 퀘스쳔 리포리터지에 저장

  • 질문 데이터 삭제
    assertEquals(1, this.questionRepository.count());
    // 카운트 (로우 ) 갯수 2개 TRUE 통과
    // Optional oq = this.questionRepository.findById(1);
    // ID 1번을 oq 객체에 넣는다
    // assertTrue(oq.isPresent());
    // 존재하면 참. 실행
    // Question q = oq.get();
    // get 을 통해 모든 데이터를 가져오고 q에 받는다.
    this.questionRepository.delete(this.questionRepository.findById(2).get());
    // q 를 델리트로 넘긴다.
    assertEquals(0, this.questionRepository.count());
    // 삭제가되고 로우 개수가 1개가 되었는지 확인하는 부분

  • 답변 데이터 생성
    Optional oq = this.questionRepository.findById(4);
    // 퀘스쳔 4번글 데이터를 oq 에 저장
    assertTrue(oq.isPresent());
    Question q = oq.get();
    //q 에 oq의 모둔데이터 확인

    	Answer a = new Answer();
    	// 엔서 타입 a 선언
    	a.setContent("네 자동으로 생성됩니다.");
    	//a 컨텐츠를 '네 자동으로 생성됩니다.' 로 초기화
    	a.setQuestion(q);  // 어떤 질문의 답변인지 알기위해서 Question 객체가 필요하다.
    	a.setCreateDate(LocalDateTime.now());
    	this.answerRepository.save(a);
  • 답변 데이터 조회
    Optional oa = this.answerRepository.findById(1);
    // 1번 답변을 oa 에 부여
    assertTrue(oa.isPresent());
    Answer a = oa.get();
    // 답변 데이터 전체를 a에 저장
    assertEquals(4, a.getQuestion().getId());
    // a 답변의 질문넘버가 4번이 맞는지 확인

  • 질문에 연결된 답변 조회
    앞에 데이터조회에서 구성한 Answer 엔티티의 question 속성을 이용하면 "답변에 연결된 질문"을 조회할 수 있다.

a.getQuestion()

  • 답변에 연결된 질문 조회
    void testJpa() {
    Optional oq = this.questionRepository.findById(4);
    // 질문 4번을 oq 에 삽입
    assertTrue(oq.isPresent());
    // oq 에 데이터값이 있는지 확인
    Question q = oq.get();
    // oq 의 데이터를 전체조회

    	List<Answer> answerList = q.getAnswerList();
    	// q에 넣은 질문의 질문리스트를 앤서리스트에 넣음.
    	assertEquals(1, answerList.size());
    	// 앤서리스트의 사이즈가 1인지 확인
    	assertEquals("네 자동으로 생성됩니다.", answerList.get(0).getContent());
    	// 앤서리스트의 컨텐츠가 '네 자동으로 생성됩니다.'가 맞는지 확인
profile
병아리 개발자 의 우당탕탕 성장기

0개의 댓글