gpt4 book ai didi

java - 如何在mongodb中保存java.sql.date对象?

转载 作者:行者123 更新时间:2023-12-01 10:52:11 25 4
gpt4 key购买 nike

我正在尝试从 MYSQL 获取数据,并在处理后使用 java 应用程序将其保存在 MongoDB 中。我的 POJO 包含 java.util.date 对象来存储日期字段。当我从 MYSQL 获取时,它返回 java.sql.date 对象。因此我的 pojo 将在 util 日期对象中引用 sql 日期。

使用 spring data mongodb 我在 mongodb 中保存相同的 pojo。它引发以下异常:

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 中而不更改我的 dao 类。

最佳答案

尝试使用 java.util.Date 从 MongoDb 恢复您的时间。我想我记得有一个类似的问题并以这种方式解决了。

关于java - 如何在mongodb中保存java.sql.date对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33800972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com