SpringDataを使用してMongoDBデータベースを管理しています。
1つのコレクションには、2つのObjectIdフィールド、_idと、別のコレクションのインスタンスを参照する他のフィールドがあります。
私のコレクションのクラスは次のようなものです。
public class CollectionA
{
private ObjectId id;
private String collectionADescription
private ObjectId collectionBId
}
このように指定されたクラスを使用すると、「外部キー」を$oidとして正常に挿入できます。
問題は、次のバインディングエラーが発生することです。
フィールド'collectionBId'のオブジェクト'collectionA'のフィールドエラー:拒否された値[]; コード[typeMismatch.collectionA.collectionBId、typeMismatch.collectionBId、typeMismatch.org.bson.types.ObjectId、typeMismatch]; 引数[org.springframework.context.support.DefaultMessageSourceResolvable:コード[collectionA.collectionBId、collectionBId]; 引数[]; デフォルトメッセージ[collectionBId]]; デフォルトメッセージ[タイプ'java.lang.String'のプロパティ値をプロパティ'collectionBId'の必須タイプ'org.bson.types.ObjectId'に変換できませんでした; ネストされた例外はjava.lang.IllegalStateExceptionです:タイプ[java.lang.String]の値をプロパティ'collectionBId'の必須タイプ[org.bson.types.ObjectId]に変換できません:一致するエディターまたは変換戦略が見つかりません]
collectionBId変数をStringに設定すると、変数は$oidではなく文字列として挿入されます
どうすればこれを達成できますか?
サンズ