점프 투 스프링부트 2-05에서 답변에 연결된 질문 찾기 vs 질문에 달린 답변 찾기관련 오류가 떠서 질문합니다.
Question과 Answer의 엔티티는 각각 이렇습니다.
@Entity
@Getter @Setter
public class Question {
@Id @GeneratedValue
@Column(name = "question_id")
private Long id;
@Column(unique = true, length = 200)
private String subject;
@Column(unique = true, columnDefinition = "TEXT")
private String content;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id")
private Member member;
@OneToMany(mappedBy = "question", cascade = CascadeType.REMOVE)
private List<Answer> answerList;
private LocalDateTime createDate;
}
@Entity
@Getter @Setter
public class Answer {
@Id @GeneratedValue
@Column(name = "answer_id")
private Long id;
@Column(columnDefinition = "TEXT")
private String content;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id")
private Member member;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "question_id")
private Question question;
private LocalDateTime createDate;
}
그리고 테스트 코드는 이렇습니다.
@SpringBootTest
@Transactional
class AnswerRepositoryTest {
@Autowired
private QuestionRepository questionRepository;
@Autowired
private AnswerRepository answerRepository;
@Test
public void 질문조회() throws Exception{
//given
Question q = new Question();
q.setSubject("제목입니다.");
q.setContent("본문입니다.");
Question saveQuestion = questionRepository.save(q);
Question question = questionRepository.findById(saveQuestion.getId()).get();
Answer a = new Answer();
a.setContent("답변입니다.");
a.setQuestion(question);
a.setCreateDate(LocalDateTime.now());
answerRepository.save(a);
//when
List<Answer> answerList = question.getAnswerList();
//then
assertEquals(1,answerList.size());
assertEquals("답변입니다.",answerList.get(0).getContent());
}
}
테스트 코드에서 자꾸 NullPointerException오류가 나는데 어떤 것이 잘못됐는지 도저히 모르겠어서 질문드립니다...
wlghsms95 님 341
2023년 2월 21일 7:28 오후
오류 내용을 보아야 알겠지만 추가하신 Member 속성에 대한 값도 설정하신후 저장해야 할 것 같습니다.
-
박응용님,
2023년 2월 21일 8:02 오후
추천
,
대댓글

@박응용님 아 책에서는 뒤에 User 엔티티를 만드셨군요 답변감사합니다!
-
wlghsms95님,
2023년 2월 22일 2:21 오후
추천
,
대댓글