본문 바로가기
프로젝트

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 출력이 잘 된다.

 

반응형

댓글