inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Querydsl

Querydsl 설정과 검증

contextLoads() 테스트 오류 질문드립니다.

416

Jaesang Yoon

작성한 질문수 59

0

@SpringBootTest
class QuerydslApplicationTests {

    @Autowired
    EntityManager em;

    @Test
    void contextLoads() {
        Hello hello = new Hello();
        em.persist(hello);

        JPAQueryFactory query = new JPAQueryFactory(em);
        QHello qHello = new QHello("h");

        Hello result = query
                .selectFrom(qHello)
                .fetchOne();

        assertThat(result).isEqualTo(hello);
    }

}

강사께서 진행하신 테스트를 똑같이 따라했는데 계속해서 TransactionRequiredException이 발생했습니다.

결국 @Transactional을 붙여주니 테스트가 정상적으로 수행됐는데요, 강의에서는 @Transactional이 없이도 잘 동작했는데 왜 저는 그렇지 않은 이유가 무엇일까요?

참고로 Spring Boot 3.2.5 최신 버전 사용중입니다.

java jpa

답변 2

0

y2gcoder

안녕하세요. Jaesang Yoon님, 공식 서포터즈 y2gcoder입니다.

image

강의에서도 @Transactional 을 붙여준 모습을 보실 수 있습니다 🙂

 

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

Jaesang Yoon님의 질문은 @Transactional의 사용과 관련하여 발생한 문제로 보입니다. 강의에서 @Transactional이 명시되지 않았음에도 불구하고 테스트가 정상적으로 실행된 것에 반해, Jaesang Yoon님의 경우에는 TransactionRequiredException 오류가 발생하여 해당 어노테이션을 추가한 후에야 테스트가 성공했다고 하셨습니다. 이러한 문제는 스프링 부트의 버전 차이나 설정에 따라 발생할 여지가 있습니다.

해당 문제와 비슷한 상황이나 환경 설정, 그리고 @Transactional의 필요성에 대해 언급된 유사한 상황으로 해결 방안을 찾을 수 있는 링크는 아래와 같습니다:

  • 실전! Querydsl - @DataJpaTest: 이 게시물에서는 @DataJpaTest를 사용할 때 JPAQueryFactory에 대한 NoSuchBeanDefinitionException 오류와 관련된 문제를 다루고 있습니다. 강사님은 직접 JPAQueryFactory를 스프링 빈으로 등록하지 않고, EntityManager를 주입받아 queryFactory를 초기화하는 코드를 작성하셨습니다. 여기서의 핵심은 테스트 환경에서 특정 빈(여기서는 JPAQueryFactory)을 어떻게 초기화하고 사용하는지에 대한 부분입니다. 강의 내용과는 다소 차이가 있으나, 테스트 환경에서의 초기 설정 방법에 대해 이해를 돕습니다.

하지만, @Transactional과 직접적으로 관련된 문제를 다루고 있는 구체적인 내용이 위 링크에서 명시적으로 언급되어 있지는 않습니다. 스프링 부트의 버전 차이로 인한 설정의 변화나 @Transactional 어노테이션의 필요성에 대해 강의나 공식 문서를 추가로 확인하는 것이 좋을 것 같습니다. Spring Boot 3.2.5 버전에 대한 변경 사항이나 @Transactional 어노테이션의 적용 범위 및 동작 방식에 대한 스프링 공식 문서를 참고하세요.

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

0

Jaesang Yoon

지식공유자님의 답변을 기다립니다.

SpringBoot 4.X에서의 Querydsl 설정

0

88

2

querydsl 오픈소스에 대한 질문

0

72

1

예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?

0

109

1

Querydsl 6.X버전에 대해서 어떻게 생각하시나요?

0

317

2

여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요

1

70

1

fetchResults()는 더이상 권장되지 않는다는데 맞나요?

0

160

1

querydsl sum() 메서드 없어요.

0

159

2

build 디렉터리 생성

0

136

2

자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?

0

114

2

현재 Querydsl에서 from절 서브쿼리를 지원하나요?

0

91

1

오타 제보 드립니다.

0

72

2

벌크 연산과 flush, clear

0

76

1

Run As Intellij 로 변경시 Q타입 import 불가

0

88

1

QHello import하기 문제 발생

0

147

2

등록된 함수 보는법(H2Dialect) 질문

0

68

2

5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의

1

196

2

[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??

1

200

1

querydsl 설정 문제

0

222

2

quey dsl 설정부분

0

158

2

count 쿼리 관련 질문입니다!

0

75

1

stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.

0

89

1

답변부탁드리겠습니다.

0

89

2

(OrderSpecifier)관련 내용 어디있을가요

0

65

1

중급문법 벌크연산에서

0

81

2