
@Test
@DisplayName("findAll")
void t002() {
List<Question> all = questionRepository.findAll();
assertEquals(2, all.size());
Question q = all.get(0);
assertEquals("sbb가 무엇인가요?", q.getSubject());
}
JPA가 기본적으로 가지고 있는 메서드
SELECT * FROM question 문 실행
@Test
@DisplayName("findById") // [SQL] select * from question where id = 1;
void t003() {
Optional<Question> oq = questionRepository.findById(1);
if (oq.isPresent()) {
Question q = oq.get();
assertEquals("sbb가 무엇인가요?", q.getSubject());
}
}
값의 존재를 확인하는 메서드, 있으면 1 없으면 0
저 코드해석 : isPresent()통해 oq가 있어? 그럼 그 안에 코드 실행시켜
SELECT * FROM question WHERE id = 1; // id = 1 인 question 조회
@Test
@DisplayName("findBySubject") // [SQL] select * from question where subject = 1;
void t004() {
Question q = questionRepository.findBySubject("sbb가 무엇인가요?");
assertEquals(1, q.getId());
}
그래서 Repository에 만들어야함 (ex. Question findBySubject(String subject); )
/*
[SQL]
SELECT *
FROM question
WHERE subject = 'sbb가 무엇인가요?'
AND content = 'sbb에 대해서 알고 싶습니다.';
*/
@Test
@DisplayName("findBySubjectAndContent")
void t005() {
Question q = questionRepository.findBySubjectAndContent(
"sbb가 무엇인가요?", "sbb에 대해 알고 싶습니다.");
assertEquals(1, q.getId());
이것도 Repository에 생성해야함
(Question findBySubjectAndContent(String subject, String content); )
/*
[SQL]
SELECT *
FROM question
WHERE subject LIKE 'sbb%';
*/
@Test
@DisplayName("findBySubjectLike")
void t006() {
List<Question> qList = questionRepository.findBySubjectLike("sbb%");
Question q = qList.get(0);
assertEquals("sbb가 무엇인가요?", q.getSubject());
}
괄호안에 있는 말이 들어가 있는지 찾기
sbb로 시작하는 말
sbb가 있는 문장