Я пытаюсь получить данные из MYSQL и после обработки, сохраняя его в MongoDB с помощью java-приложения. My POJO содержит объекты java.util.date для хранения полей даты. Когда я получаю из MYSQL, он возвращает объект java.sql.date. поэтому у моего pojo будет ссылка на sql date в объекте date util.Как сохранить объект java.sql.date в mongodb?
Использование данных весны mongodb Я сохраняю то же самое pojo in mongodb. где он поднимает ниже исключения:
Exception in thread "main" org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class java.sql.Date.
at org.bson.codecs.configuration.CodecCache.getOrThrow(CodecCache.java:46)
at org.bson.codecs.configuration.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:63)
at org.bson.codecs.configuration.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:37)
at com.mongodb.DBObjectCodec.writeValue(DBObjectCodec.java:210)
at com.mongodb.DBObjectCodec.encodeMap(DBObjectCodec.java:220)
at com.mongodb.DBObjectCodec.writeValue(DBObjectCodec.java:196)
at com.mongodb.DBObjectCodec.encodeIterable(DBObjectCodec.java:269)
at com.mongodb.DBObjectCodec.writeValue(DBObjectCodec.java:198)
at com.mongodb.DBObjectCodec.encode(DBObjectCodec.java:128)
at com.mongodb.DBObjectCodec.encode(DBObjectCodec.java:61)
at com.mongodb.CompoundDBObjectCodec.encode(CompoundDBObjectCodec.java:48)
at com.mongodb.CompoundDBObjectCodec.encode(CompoundDBObjectCodec.java:27)
at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:63)
at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:29)
at com.mongodb.connection.UpdateCommandMessage.writeTheWrites(UpdateCommandMessage.java:85)
at com.mongodb.connection.UpdateCommandMessage.writeTheWrites(UpdateCommandMessage.java:42)
at com.mongodb.connection.BaseWriteCommandMessage.encodeMessageBodyWithMetadata(BaseWriteCommandMessage.java:118)
at com.mongodb.connection.RequestMessage.encodeWithMetadata(RequestMessage.java:160)
at com.mongodb.connection.WriteCommandProtocol.sendMessage(WriteCommandProtocol.java:199)
at com.mongodb.connection.WriteCommandProtocol.execute(WriteCommandProtocol.java:88)
at com.mongodb.connection.UpdateCommandProtocol.execute(UpdateCommandProtocol.java:63)
at com.mongodb.connection.UpdateCommandProtocol.execute(UpdateCommandProtocol.java:37)
at com.mongodb.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:159)
at com.mongodb.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:260)
at com.mongodb.connection.DefaultServerConnection.updateCommand(DefaultServerConnection.java:121)
at com.mongodb.operation.UpdateOperation.executeCommandProtocol(UpdateOperation.java:76)
at com.mongodb.operation.BaseWriteOperation$1.call(BaseWriteOperation.java:111)
at com.mongodb.operation.BaseWriteOperation$1.call(BaseWriteOperation.java:106)
at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:187)
at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:178)
at com.mongodb.operation.BaseWriteOperation.execute(BaseWriteOperation.java:106)
at com.mongodb.operation.BaseWriteOperation.execute(BaseWriteOperation.java:58)
at com.mongodb.Mongo.execute(Mongo.java:769)
at com.mongodb.Mongo$2.execute(Mongo.java:752)
at com.mongodb.DBCollection.executeWriteOperation(DBCollection.java:330)
at com.mongodb.DBCollection.replaceOrInsert(DBCollection.java:408)
at com.mongodb.DBCollection.save(DBCollection.java:397)
at com.mongodb.DBCollection.save(DBCollection.java:370)
at org.springframework.data.mongodb.core.MongoTemplate$11.doInCollection(MongoTemplate.java:1040)
at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:462)
at org.springframework.data.mongodb.core.MongoTemplate.saveDBObject(MongoTemplate.java:1035)
at org.springframework.data.mongodb.core.MongoTemplate.doSave(MongoTemplate.java:975)
at org.springframework.data.mongodb.core.MongoTemplate.save(MongoTemplate.java:921)
at com.persivia.ptf.mongo.dao.impl.MongoDaoImpl.save(MongoDaoImpl.java:47)
теперь, как я могу сохранить его в MongoDB, не меняя свои классы дао.
Выглядит больше как ваше Pojo содержит java.sql.Date –
извините, у моих pojos есть объекты java.util.date. Я не хочу менять свое dao для преобразования каждого поля, как этот новый java.util.Date (dataRow.getDate («FIELD_DATE»). getTime); mongo должен сам справиться с этим – usman
Я все еще смущен - вы используете pojos java.sql.Date или java.util.Date. Если первый, я бы соответствующим образом изменил вопрос. –