私は春からdbref関数を使用しようとしています。Spring with 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;
ポイクラスは、POIの異なるタイプ(例えば、培養)によって実現されます。ツアーオブジェクトのポーズをリストとして参照したいと思います。
私はpoisコレクションにpoiを保存するPOSTを行います。
問題:poiオブジェクトのobjectID-referenceを使用してツアーでPOSTを実行すると、ツアーのpoiリストは常にnullです。
私は@DBRefの権利を理解しましたか?
EDIT1:エラーメッセージ
問題がある:あなたが「poi_id_1」と「poi_id_2」で参照されるデータベースに2個のPOIを持っていると仮定します。今私は(他の引数はommited)その中に、次のJSON配列を追加/ /ツアーへのAPI呼び出しを開始します。
"poiList": [{"id": "poi_id_1"}, {"id":"poi_id_2"}]
私は200
を得るしかし:私はツアーでクエリを開始すると、結果として"poiList": [null]
が得られます。 (他の引数がommited)事前にあなたの助けを
感謝:)
を使用しますいただきました!エラーを教えてくださいことはできますか? – Pavan
@dbrefを使用する構文でエラーが表示されません。 – Pavan