Я пытаюсь использовать функцию dbref с весны.Весна с MongoRepository: DBRef
Мой код:
@EnableAutoConfiguration
@RestController
@RequestMapping("/poi")
public class PoiBasicController {
@Autowired
private PoiRepository poiRepository;
@RequestMapping(value = "/add", method = RequestMethod.POST)
public @ResponseBody ResponseEntity<String> add(@RequestBody PointOfInterest poi) {
poiRepository.insert(poi);
return ResponseEntity.status(HttpStatus.OK).body(null);
}
@EnableAutoConfiguration
@RestController
@RequestMapping("/tour")
public class TourController {
@Autowired
private TourRepository tourRepository;
@Autowired
private PoiRepository poiRepository;
@RequestMapping(value = "/add", method = RequestMethod.POST)
public @ResponseBody ResponseEntity<String> addTour(@RequestBody Tour tour) {
tourRepository.insert(tour);
return ResponseEntity.status(HttpStatus.OK).body(null);
}
@Document
public class Tour {
@Id
private String id;
private HashMap<String, String> title;
private HashMap<String, String> description;
private List<String> images;
@DBRef(db = "pois")
private List<PointOfInterest> poiList;
@Document(collection = "pois")
public abstract class PointOfInterest {
@Id
private String id;
private UpperCategory upperCategory;
private List<String> tags;
private int priority;
private List<String> images;
private LocationWrapper location;
/*
Languagekey, description
*/
private HashMap<String, String> description;
Класс Пои реализуется различными типами пои (например, культуры). Я хочу ссылаться на pois в моем объекте Tour как на список.
Я делаю POST для хранения poi в моей коллекции pois.
Проблема: когда я выполняю POST в своем туре с ссылкой на objectID-ссылку объекта poi, мой список Poi в турах всегда равен нулю.
Я правильно понял @DBRef, не так ли?
Edit1: Сообщение об ошибке
Проблема заключается в том: Предположим, у вас есть два POIs в базе данных ссылочного с «poi_id_1» и «poi_id_2». Теперь я начинаю вызов API к/туру/добавить следующий массив JSON в нем (другие аргументы) опущен:
"poiList": [{"id": "poi_id_1"}, {"id":"poi_id_2"}]
я получаю 200.
НО: Когда я начинаю запрос на турах, Я получаю "poiList": [null]
. (Другие аргументы опущены)
Спасибо за вашу помощь заранее :)
Можете ли вы сказать Whats ошибку? – Pavan
Я не вижу каких-либо ошибок в синтаксисе использования @dbref. – Pavan