inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Xây dựng môi trường phát triển Spring framework và tái cấu trúc Dao

Khởi động mùa xuân Dữ liệu mùa xuân Jpa (1)

[해결 방법] findOne 에러 / Inferred type 'S' for type parameter 'S' is not within its bound; should extend 'com. spring. www. domain. User'

115

kms920106

110 câu hỏi đã được viết

0

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserRepositoryTest {
    @Autowired
    UserRepository userRepository;

    @Test
    public void save() {
        //User user = new User("kms", "kms1234", "hongildong");
        //userRepository.save(user);
        User user = new User();
        user.setId("kms");
        Example<User> userExample = Example.of(user);
        User selectedUser = userRepository.findOne(userExample).orElse(null);
        assertEquals("kms", selectedUser.getId());
    }
}

spring intellij-idea

Câu trả lời 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 강프로그래머님이 제기하신 문제는 userRepository.findOne(userExample).orElse(null); 부분에서 발생하는 제네릭 타입 추론 문제로 보입니다.

Spring Data JPA의 findOne(Example<S> example) 메소드는 조건에 맞는 엔티티를 반환하는데, 제네릭 타입 S는 엔티티 클래스인 User와 일치해야 합니다. ‘Inferred type ’S’ is not within its bound; should extend ‘com.spring.www.domain.User” 에러는 제네릭 타입 추론 과정에서 S 타입이 User 타입으로 맞춰지지 않았다는 의미입니다.

해결 방법

  1. ExampleMatcher 사용: Example 객체 생성 시 매처를 명시적으로 지정하여, 필드 매칭에 대한 전략을 세밀하게 조정할 수 있습니다.

    ExampleMatcher matcher = ExampleMatcher.matching()
                                  .withIgnorePaths("someFieldToIgnore"); // 특정 필드를 무시하고 싶다면 사용
    
    
    Example<User> userExample = Example.of(user, matcher);
    
  2. 타입 명시적 부여: 제네릭 타입을 명시적으로 부여하여 타입 혼동을 방지합니다.

    Optional<User> selectedUserOpt = userRepository.findOne(userExample);
    User selectedUser = selectedUserOpt.orElse(null);
    

관련된 내용으로 도움이 될 만한 게시글을 추천드립니다:

이미지나 추가 예제가 있는 경우를 확인하고자 하시면, 아래 원본 URL을 참고해 주세요:
- 원본 링크

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

네이버 API | '검색 - 책' API 제공 중단

0

20

2

Part 2 듣기전 복습하던 중, 아키텍처에 관한 질문이 있습니다.

0

35

2

장치 의존성과 CSR

0

30

1

테스트는 인터페이스를 대상으로 만드는것에 대해 궁금한 점이 있습니다.

0

22

1

[영한님]Spring Boot 및 프로젝트 생성

0

48

2

JPA 엔티티로 만들었다고 기술종속이 아닌지에 대한 질문

0

53

3

강의 요청 문의

0

39

2

클로드코드 명령어-대화&세션관리 수업 자료

0

40

1

PlatformTransactionManager, ResourcelessTransactionManager 질문

1

59

2

자료 한번에 다운받기

0

30

1

스프링 빈 등록 방법 2가지 다 알아야하는 이유

0

56

1

mybatis 를 이용한 crud에서 insert에서 resultType='long" 이라고 하셨는데요,

0

25

1

설계 트레이드 오프 링크 접속 안됨

0

83

2

테스트 질문, 어떤것을 사용할것인것에 대해서

0

41

1

깃허브주소 궁금합니다.

0

35

2

mariaDB 설정

0

30

1

섹션4 퀴즈 오타있어요.

0

44

1

AWS 배포 성능테스트

0

71

2

퀴즈가 안열려요

0

74

2

7강 보고 있는데요.. 글자가 너무 작아요

0

37

1

트래잭션 전파 기본- 에 대한 개념 질문? 이렇게 생각해도 맞나요?

0

44

1

[해결 방법] Autowired가 적용이 안되는 문제 + context에서 NullPointerException

0

344

1

[해결 방법] Java8 버전 사용하고 싶으신 분들은 아래와 같이 설정하시면 됩니다.

0

272

1

강좌와관련된 교재는없나요?

1

215

0