import com.mongodb.MongoClient; import com.mongodb.MongoClientOptions; import com.mongodb.MongoClientURI; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import org.bson.codecs.configuration.CodecRegistries; import org.bson.codecs.configuration.CodecRegistry; import org.bson.codecs.pojo.PojoCodecProvider; import org.bson.types.ObjectId; import java.util.concurrent.TimeUnit; import static org.bson.codecs.pojo.Conventions.DEFAULT_CONVENTIONS; public class TestMongoJiraStringIdMain { public static void main(String[] args) { String mongoUri = "mongodb://localhost:27017"; String database = "test"; MongoClient mongoClient = buildMongoClient(mongoUri); MongoDatabase mongoDatabase = mongoClient.getDatabase(database); MongoCollection<TestModel> test = mongoDatabase.getCollection("test", TestModel.class); test.drop(); test.insertOne(new TestModel(null, 1, "123")); test.insertOne(new TestModel(new ObjectId().toHexString(), 1, "123")); test.insertOne(new TestModel("123", 1, "123")); for (TestModel testModel : test.find()) { System.out.println(testModel); } for (Document doc : mongoDatabase.getCollection("test").find()) { System.out.println(doc.toJson()); } } public static MongoClient buildMongoClient(String mongoUri) { final CodecRegistry pojoRegistry = CodecRegistries.fromProviders(PojoCodecProvider.builder() .automatic(true) .conventions(DEFAULT_CONVENTIONS) .build() ); final CodecRegistry registries = CodecRegistries.fromRegistries(MongoClient.getDefaultCodecRegistry(), pojoRegistry); final MongoClientOptions.Builder optionsBuilder = MongoClientOptions.builder() .codecRegistry(registries) .connectTimeout((int) TimeUnit.MINUTES.toMillis(5)); return new MongoClient(new MongoClientURI(mongoUri, optionsBuilder)); } public static class TestModel { public String _id; public int id; public String name; public TestModel(){} public TestModel(String _id, int id, String name) { this._id = _id; this.id = id; this.name = name; } @Override public String toString() { return "TestModel{" + "_id='" + _id + '\'' + ", id=" + id + ", name='" + name + '\'' + '}'; } } }