Я использую Spring Boot и MongoDB для личного проекта по созданию базы данных фильмов и видеоигр.У меня есть методы, которые получают последние пять записей каждой категории.Когда я тестировал на локальном сервере Tomcat и MongoDB, методы работали как положено.Однако при развертывании на сервере Tomcat и подключении к серверу MongoDB методы, которые получают последние пять записей, всегда возвращают пустой массив.вот код:
Репозиторий:
public interface MovieRepository extends MongoRepository<Movies, String>{
public List<Movies> findAllByOrderByTitleAsc(Pageable pageable);
@Query("{'title': {$regex: ?0, $options: 'i'}}")
public List<Movies> findByTitle(String title);
public List<Movies> findTop5ByCreatedAtLessThan(String currentDate);
public Movies findMovieById(String id);
public List<Movies> findByPlatformsIn(List<String> platforms);
}
Контроллер:
@RestController
@RequestMapping("/api")
public class MovieController {
@Autowired
private MovieRepository movieRepository;
@Autowired
private MapValidationErrorService mapValidationErrorService;
@Autowired
private CurrentDateService currentDateService;
@GetMapping("/movies")
public List<Movies> findAllMovies(@RequestParam(value="page", defaultValue="0")int page) {
return movieRepository.findAllByOrderByTitleAsc(PageRequest.of(page, 20));
}
@GetMapping("/movies/{movieId}")
public Movies findMovieById(@PathVariable("movieId") String movieId) {
return movieRepository.findMovieById(movieId);
}
@PostMapping("/movies")
public ResponseEntity<?> saveMovie(@Valid @RequestBody Movies movie, BindingResult result) {
ResponseEntity<?> errorMap = mapValidationErrorService.mapvalidationService(result);
if (errorMap != null) return errorMap;
movie.setId(null);
Movies newMovie = movieRepository.save(movie);
return new ResponseEntity<Movies>(newMovie, HttpStatus.OK);
}
@PutMapping("/movies")
public ResponseEntity<?> updateMovie(@Valid @RequestBody Movies movie, BindingResult result) {
ResponseEntity<?> errorMap = mapValidationErrorService.mapvalidationService(result);
if (errorMap != null) return errorMap;
Movies updatedMovie = movieRepository.save(movie);
return new ResponseEntity<Movies>(updatedMovie, HttpStatus.OK);
}
@DeleteMapping("/movies/{movieId}")
public void deleteMovieById(@PathVariable("movieId") String movieId) {
movieRepository.deleteById(movieId);
}
@GetMapping("/moviePlatforms")
public List<Movies> findMoviesByPlatforms(@RequestParam(value="platform") List<String>platforms) {
return movieRepository.findByPlatformsIn(platforms);
}
@GetMapping("/newFiveMovies")
public List<Movies> findTop5ByCreatedAt() {
String currentDate = currentDateService.getCurrentDate();
return movieRepository.findByCreatedAt(currentDate);
}
}
Я изменил топ-5 методов поиска, чтобы использовать аннотацию @Query, но этодает те же результаты.Все остальные методы в контроллере и хранилище работают как положено.Я пытался использовать MongoDB на Mac, а также на MongoDB Atlas.Любая помощь с благодарностью.