のために私はMongoDBの中で1つのコレクションに異なるデータを保存し、適切なフィールドで春データ豆を持ちたい...春データのMongoDBクラスの継承
申し訳ありませんが、私はスキップされた詳細をしました。
親豆:
class A
int a
チャイルズ:私はデータをフェッチするとき
class B extends A
double b
class C extends A
String c
ので、以下の文書はモンゴであり
{a : 1, b : 2.3, c : "Test"}
、それは大丈夫です。しかし、私はBのためCrudRepositoryから保存メソッドを呼び出すとき、それはすべてのデータを書き換え、私はそのような
update.set("b", newvalue)...
として、
が、私はカスタム作成増分更新でメソッドを保存するための唯一の良いオプションを知っているC.
失いますですが、反射があります。
他にもアイデアはありますか?
ありがとうございます。
'MongoTemplate'とリポジトリとのやりとりについてもう少し詳しくお考えですか?あなたは 'B'のオブジェクトにデータを読み込んでいますか?格納された型情報を検出する必要があるので、実際には 'C'型のオブジェクトを返すべきです。それを超えると、コレクションのマッピング情報が役立ちます。すべてのクラスが同じコレクションにマッピングされていることを確認してください。 –
こんにちはオリバー、あなたの答えに感謝します。はい、更新クエリを使用するには、 'MongoTemplate'の 'save'メソッドをオーバーライドしました。今私が 'B'を保存すると、 'B'フィールドのみが更新されます。しかし、私はもっと素晴らしいソリューションを見つけようとしています... –
関連するコードスニペットを追加すると、問題に少しでも潜んでしまうかもしれません:) –