0
私はこのJavaのMongoDBのPOJOカスタムIDタイプ
@BsonDiscrimintor
public class User {
@BsonId
private Integer _id;
// some properties
// getter & setter
}
のようなクラスを作成し、私はそれを見つけたとき、私は
public int addOne(User user) {
try {
user.set_id(Db.getNextId("user"));
userCollection.insertOne(user);
} catch (Exception e) {
e.printStackTrace();
}
return user.get_id();
}
を挿入しようしかしとき
ClassModel<User> userModel = ClassModel.builder(User.class).enableDiscriminator(true).build();
PojoCodecProvider pojoCodecProvider = PojoCodecProvider.builder().register(userModel).build();
pojoCodecRegistry = fromRegistries(MongoClient.getDefaultCodecRegistry(), fromProviders(pojoCodecProvider));
mongoClient = new MongoClient("localhost", MongoClientOptions.builder().codecRegistry(pojoCodecRegistry).build());
mongoDatabase = mongoClient.getDatabase("bbs").withCodecRegistry(pojoCodecRegistry);
をコーデックに登録mongoでは、_idフィールドの型はObjectIDですが、Int32ではありません。 しかし、私は_idを整数として宣言しました、なぜですか?