SteeleDev:
私はGsonライブラリを使用して作成していJSONオブジェクトを持っています。私は整数のIDとしてUUIDとint64型タイプを持つJavaモンゴドライバv3.8.1を使用してMongoDBの中で、このオブジェクトを挿入します。しかし、これはそれぞれの文字列とのInt32型として挿入されているようです。
JsonObject folderObject = new JsonObject();
folderObject.addProperty("id", UUID.randomUUID().toString());
folderObject.addProperty("cid", document.getCid());
私はBSONにこれを変換しています
org.bson.Document doc= org.bson.Document.parse(folderObject .toString());
そして使用してMongoDBの中に挿入
mongoCollection.insertOne(doc);
私document.getCidは()タイプのロングのですが、それでもINT32として挿入されて、私はfolderObjectに文字列から離れて何かを渡すことができません。
SteeleDev:
MongoのPOJOコーデックを使用してこれを解決しました。
CodecRegistry pojoCodecRegistry = fromRegistries(MongoClient.getDefaultCodecRegistry(),
fromProviders(PojoCodecProvider.builder().automatic(true).build()));
CodecRegistry codecRegistry =
fromRegistries(CodecRegistries.fromCodecs(new UuidCodec(UuidRepresentation.STANDARD)),
MongoClientSettings.getDefaultCodecRegistry(),pojoCodecRegistry
);
その後、あなたは特定のコーデックを使用してクライアントを起動したり、コーデックレジストリやコーデックのコレクションでデータベースを起動するかを選択することができます。
リファレンス- https://mongodb.github.io/mongo-java-driver/3.8/driver/getting-started/quick-start-pojo/