본문 바로가기
프로젝트

DB에 있는 List값을 불러오지 못하는 경우

by 개발자신입 2024. 5. 20.
반응형

문제

계속 List 값을 불러오지 못하는 에러가 있었음.

MySimriController

@RestController
public class MySimriController {

    @Autowired
    private TestResultRepository testResultRepository;

    @Autowired
    private JwtService jwtService;

    @GetMapping("/api/mysimri")
    public ResponseEntity<TestResult> getTestResultsForQid(
            @CookieValue(value = "token", required = false) String token ) {

        System.out.println("심리결과 토큰 확인: " + token);

        if (!jwtService.isValid(token)) {
            System.out.println("유효한가요?");
            throw new ResponseStatusException(HttpStatus.UNAUTHORIZED);
        }

        int memberId = jwtService.getId(token);
        List<TestResult> testResults = testResultRepository.findByMemberIdAndQidOrderByTdateDesc(memberId, 10);
        System.out.println("memberId: " + memberId + ", qid: 10");
        System.out.println("list 출력"+testResults);

        // 조회된 TestResult가 없을 경우
        if (testResults.isEmpty()) {
            System.out.println("조회된 TestResult가 없음");
            return ResponseEntity.notFound().build();
        }

        // 여기서는 가장 최근의 TestResult를 반환하도록 함
        TestResult latestTestResult = testResults.get(0);
        return ResponseEntity.ok(latestTestResult);
    }
}

TestResultRepository

public interface TestResultRepository extends JpaRepository<TestResult, Integer> {

    void save(List<TestResult> testResults);
    List<TestResult> findByMemberId(int memberId);

    //  qid가 10인 최근의 테스트 결과를 반환하는 메서드
    //List<TestResult> findByMemberIdAndQidOrderByTdateDesc();
    List<TestResult> findByMemberIdAndQidOrderByTdateDesc(int memberId, int qid);
}

 

 

원인

코드에는 문제가 없는데 안됐던 이유 :

DB에 데이터 값이 없었다. 있긴했는데 그게 다른 아이디의 값이었으므로 못 가져왔던거임. (member 데이터가 바뀌어서 몰랐음)

 

List 출력이 잘 된다.

 

반응형

댓글