2015-11-19 3 views
0

Я пытаюсь получить данные из 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, не меняя свои классы дао.

+0

Выглядит больше как ваше Pojo содержит java.sql.Date –

+0

извините, у моих pojos есть объекты java.util.date. Я не хочу менять свое dao для преобразования каждого поля, как этот новый java.util.Date (dataRow.getDate («FIELD_DATE»). getTime); mongo должен сам справиться с этим – usman

+0

Я все еще смущен - вы используете pojos java.sql.Date или java.util.Date. Если первый, я бы соответствующим образом изменил вопрос. –

ответ

1

Попробуйте использовать java.util.Date, чтобы восстановить ваше время от MongoDb. Я думаю, что я помню подобную проблему и решил ее таким образом.

+0

case предназначен для сохранения данных в mongodb и не восстановления ... – usman