작성
·
62
0
package com.mysite.sbb;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SbbApplicationTests {
@Autowired
private QuestionRepository questionRepository;
@Test
void testJpa() {
Question q = this.questionRepository.findBySubjectAndContent(
"sbb가 무엇인가요?", "sbb에 대해서 알고 싶습니다.");
assertEquals(1, q.getId());
}
}
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
손진주님, 콘솔에서 쿼리문이 형성되지 않는 것과 관련하여 몇 가지 고려할 사항을 안내드리겠습니다.
테스트 환경 설정: @SpringBootTest
를 사용할 때, 데이터베이스 설정이 적절히 되어 있는지 확인해 주세요. 특히, application.properties
또는 application.yml
파일에 데이터베이스 설정이 정확히 기재되어 있는지 확인하는 것이 중요합니다.
Hibernate 설정: 쿼리 로그가 출력되지 않는 경우는 보통 Hibernate의 SQL 디버깅 설정이 안 되어 있어서 그렇습니다. application.properties
에 아래 설정을 추가해 보세요:
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
데이터 확인: QuestionRepository
를 통해 쿼리할 데이터가 실제로 데이터베이스에 있는지 확인해보세요. findBySubjectAndContent
에 작성한 조건에 맞는 데이터가 없다면 쿼리 결과가 null일 수 있습니다.
에러 메시지 확인: 해당 코드에서 컴파일 오류가 발생할 경우, 정확한 오류 메시지를 확인하여 에러의 원인을 파악하는 것이 중요합니다.
아래 링크에서 테스트 환경 설정과 관련된 내용을 참고하시면 도움이 될 수 있습니다:
- Spring Boot에서 JPA 테스트를 설정하고 실행하기: “Spring Boot에서 JPA 테스트를 설정하는 방법과 유용한 정보들”
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.