J'essaie d'utiliser la fonction dbref du printemps.Spring avec MongoRepository: DBRef
Mon code:
@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;
La classe Poi est mis en œuvre par différents types de poi (par exemple la culture). Je veux référencer le pois dans mon objet Tour en tant que liste.
Je fais un POST pour stocker un poi dans ma collection pois. Le problème: Lorsque je fais un POST sur mon tour avec la référence objectID de l'objet poi, ma liste poi dans les tournées est toujours nulle.
J'ai bien compris le @DBRef, n'est-ce pas?
Edit1: message d'erreur
Le problème est: Supposons que vous avez deux points d'intérêt dans la base de données référencée avec « poi_id_1 » et « poi_id_2 ». Maintenant, je commence un appel API à/tour/ajouter au tableau JSON suivant il (autres arguments ommited):
"poiList": [{"id": "poi_id_1"}, {"id":"poi_id_2"}]
je reçois un 200
MAIS: Quand je commence une requête sur les visites, J'obtiens "poiList": [null]
comme résultat. (D'autres arguments ommited)
Merci pour votre aide à l'avance :)
Pouvez-vous dire ce qui est s'il vous plaît l'erreur? – Pavan
Je ne vois aucune erreur dans la syntaxe de l'utilisation de @dbref. – Pavan