我正在使用Micronaut和MongoDB创建一个新应用程序。关于我的一些数据库对象,我遇到了一些停滞不前的问题。
我有一个包含枚举字段的对象,我需要将其转换为可以保存的值(计划将其持久化为字符串)。
从我所了解的和收到的错误消息来看,我需要创建一个新编解码器来处理这个问题(类似于JPA转换器)。尽管我找到了一些示例,但我仍然有点困惑,不知道我应该如何为MongoClient注册转换器。
我使用最新版本的Micronaut框架和相应的MongoClient。
以下是我参考的异常:
我有一个包含枚举字段的对象,我需要将其转换为可以保存的值(计划将其持久化为字符串)。
从我所了解的和收到的错误消息来看,我需要创建一个新编解码器来处理这个问题(类似于JPA转换器)。尽管我找到了一些示例,但我仍然有点困惑,不知道我应该如何为MongoClient注册转换器。
我使用最新版本的Micronaut框架和相应的MongoClient。
以下是我参考的异常:
org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class fts.marketing.models.CampaignEmailStatus.
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.client.model.BuildersHelper.encodeValue(BuildersHelper.java:37)
at com.mongodb.client.model.Filters$SimpleEncodingFilter.toBsonDocument(Filters.java:1109)
at com.mongodb.client.model.Filters$AndFilter.toBsonDocument(Filters.java:946)
at com.mongodb.internal.operation.Operations.createFindOperation(Operations.java:142)
at com.mongodb.internal.operation.Operations.find(Operations.java:130)
at com.mongodb.internal.operation.AsyncOperations.find(AsyncOperations.java:85)
at com.mongodb.async.client.FindIterableImpl.createFindOperation(FindIterableImpl.java:229)
at com.mongodb.async.client.FindIterableImpl.asAsyncReadOperation(FindIterableImpl.java:225)
at com.mongodb.async.client.MongoIterableImpl.batchCursor(MongoIterableImpl.java:161)
at com.mongodb.async.client.MongoIterableSubscription.requestInitialData(MongoIterableSubscription.java:46)
at com.mongodb.async.client.AbstractSubscription.tryRequestInitialData(AbstractSubscription.java:151)
at com.mongodb.async.client.AbstractSubscription.request(AbstractSubscription.java:84)
at com.mongodb.reactivestreams.client.internal.ObservableToPublisher$1$1.request(ObservableToPublisher.java:50)
at io.reactivex.internal.operators.flowable.FlowableToListSingle$ToListSubscriber.onSubscribe(FlowableToListSingle.java:84)
at com.mongodb.reactivestreams.client.internal.ObservableToPublisher$1.onSubscribe(ObservableToPublisher.java:39)
at com.mongodb.async.client.MongoIterableSubscription.<init>(MongoIterableSubscription.java:40)
at com.mongodb.async.client.Observables$1.subscribe(Observables.java:47)
at com.mongodb.reactivestreams.client.internal.ObservableToPublisher.subscribe(ObservableToPublisher.java:36)
at com.mongodb.reactivestreams.client.internal.FindPublisherImpl.subscribe(FindPublisherImpl.java:189)