강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

손진주님의 프로필 이미지
손진주

작성한 질문수

백엔드 개발을 위한 필수 강의 - 스프링 부트3

리포지터리, Junit, 의존성 주입(DI), 패키지 분류 등의 개념과 활용

쿼리문이 console에서 형성이 안되고 아래와 같은 코드오류걸려요

작성

·

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 인턴입니다.

손진주님, 콘솔에서 쿼리문이 형성되지 않는 것과 관련하여 몇 가지 고려할 사항을 안내드리겠습니다.

  1. 테스트 환경 설정: @SpringBootTest를 사용할 때, 데이터베이스 설정이 적절히 되어 있는지 확인해 주세요. 특히, application.properties 또는 application.yml 파일에 데이터베이스 설정이 정확히 기재되어 있는지 확인하는 것이 중요합니다.

  2. Hibernate 설정: 쿼리 로그가 출력되지 않는 경우는 보통 Hibernate의 SQL 디버깅 설정이 안 되어 있어서 그렇습니다. application.properties에 아래 설정을 추가해 보세요:

    spring.jpa.show-sql=true
    spring.jpa.properties.hibernate.format_sql=true
    
  3. 데이터 확인: QuestionRepository를 통해 쿼리할 데이터가 실제로 데이터베이스에 있는지 확인해보세요. findBySubjectAndContent에 작성한 조건에 맞는 데이터가 없다면 쿼리 결과가 null일 수 있습니다.

  4. 에러 메시지 확인: 해당 코드에서 컴파일 오류가 발생할 경우, 정확한 오류 메시지를 확인하여 에러의 원인을 파악하는 것이 중요합니다.

아래 링크에서 테스트 환경 설정과 관련된 내용을 참고하시면 도움이 될 수 있습니다:
- Spring Boot에서 JPA 테스트를 설정하고 실행하기: “Spring Boot에서 JPA 테스트를 설정하는 방법과 유용한 정보들”

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

손진주님의 프로필 이미지
손진주

작성한 질문수

질문하기