I am making code changes to upgrade to MongoDB 5 for a java dropwizard application. Upgraded versions mongodb-driver-sync : 4.10.2 morphia-core: 2.3.8
For test case setup I have used this code :
server = new MongoServer(new MemoryBackend());
InetSocketAddress serverAddress = server.bind();
String connectionString = "mongodb://" + serverAddress.getHostString() + ":" + serverAddress.getPort();
client = MongoClients.create(connectionString);
CodecProvider pojoCodecProvider = PojoCodecProvider.builder().automatic(true)
.build();
CodecRegistry pojoCodecRegistry = fromRegistries(CodecRegistries.fromCodecs(new UuidCodec(UuidRepresentation.JAVA_LEGACY)), getDefaultCodecRegistry()
, fromProviders(pojoCodecProvider));
MapperOptions mapperOptions = MapperOptions.builder()
.codecProvider(pojoCodecRegistry)
.build();
datastore = Morphia.createDatastore(client, "events", mapperOptions);
datastore.getMapper().mapPackageFromClass(Event.class);
datastore.ensureIndexes();
Saved events using
datastore.save(event)
no issue, but while retrieving events
List<Event> events = datastore.find(Event.class).iterator().toList();;
yields 0 results while
Aggregation<Event> temp = datastore.aggregate(Event.class);
List<Event> aggList = temp.execute(Event.class).toList();
works fine.
What could be the reason for above mentioned behaviour?
If you're using Morphia you don't need, or probably even want,
PojoCodec. That might be introducing conflicting resolutions.