강의

멘토링

로드맵

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

고동동님의 프로필 이미지
고동동

작성한 질문수

실전! Querydsl

스프링 데이터 JPA 리포지토리로 변경

안녕하세요. 질문드립니다.

작성

·

727

0

java.lang.IllegalArgumentException: Could not locate ordinal parameter [1], expecting one of []

이와 같은 익셉션이 발생합니다.

실행 테스트 코드 입니다.

package study.querydsl.repository;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.transaction.annotation.Transactional;
import study.querydsl.entity.Member;

import javax.persistence.EntityManager;
import java.util.List;

import static org.assertj.core.api.Assertions.assertThat;

@SpringBootTest
@Transactional
class MemberRepositoryTest {

@Autowired
EntityManager em;

@Autowired
MemberRepository memberRepository;

@Test
public void basicTest() {
Member member = new Member("member1", 10);
memberRepository.save(member);
Member findMember = memberRepository.findById(member.getId()).get();
assertThat(findMember).isEqualTo(member);

List<Member> result1 = memberRepository.findAll();
assertThat(result1).containsExactly(member);

List<Member> result2 = memberRepository.findByUsername("member1");
assertThat(result2).containsExactly(member);
}
}

에러는 List<Member> result2 = memberRepository.findByUsername("member1");

여기서 발생합니다.

git 주소 입니다.

https://github.com/aispark/querydsl

퀴즈

71%나 틀려요. 한번 도전해보세요!

스프링 데이터 JPA 사용 시 순수 JPA와 비교하여 개발 생산성 측면에서 얻는 주요 이점은 무엇일까요?

모든 쿼리를 수동으로 복잡하게 작성해야 한다

기본 CRUD(저장, 조회 등) 메서드를 인터페이스만으로 자동으로 제공받는다

모든 동적 쿼리 구현이 항상 완전히 자동화된다

데이터베이스 연결 설정을 직접 XML 파일로 관리해야 한다

답변 1

1

고동동님의 프로필 이미지
고동동
질문자

자답 입니다.

MemberRepository에 @Param 을 선언하지 않아서 파라메터를 찾지 못했네요

김영한님의 프로필 이미지
김영한
지식공유자

스스로 잘 해결하셨습니다^^

고동동님의 프로필 이미지
고동동

작성한 질문수

질문하기