0
由於在批量寫入期間觀察到的問題,我正在嘗試升級我項目的Morphia jar。morphia MappingException:來自轉換器(IdentityConverter)的錯誤設置值
從Morphia 0.99到1.1.1。更新後,我在閱讀實現Iterable的嵌入式類對象時遇到了問題。
以下是我在閱讀了該錯誤,堅持記錄:
了java.lang.RuntimeException: org.mongodb.morphia.mapping.MappingException:從 轉換錯誤設定值(IdentityConverter)
我正在使用Mongo 2.7.3,目前無法進行升級。
編輯:全堆棧跟蹤:
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: org.mongodb.morphia.mapping.MappingException: Error setting value from converter (IdentityConverter) for Doc.expressionTraversalTree to { "levels" : [ { "computeUnits" : [ { "computeType" : "MATH_EVAL" , "mvalExpression" : "doc['__count__'].value + 10" }] , "level" : 0}]}
at org.mongodb.morphia.mapping.EmbeddedMapper.fromDBObject(EmbeddedMapper.java:74)
at org.mongodb.morphia.mapping.Mapper.readMappedField(Mapper.java:772)
at org.mongodb.morphia.mapping.Mapper.fromDb(Mapper.java:230)
at org.mongodb.morphia.mapping.Mapper.fromDBObject(Mapper.java:191)
at org.mongodb.morphia.query.MorphiaIterator.convertItem(MorphiaIterator.java:134)
at org.mongodb.morphia.query.MorphiaIterator.processItem(MorphiaIterator.java:146)
at org.mongodb.morphia.query.MorphiaIterator.next(MorphiaIterator.java:117)
at org.mongodb.morphia.query.QueryImpl.get(QueryImpl.java:220)
at org.mongodb.morphia.dao.BasicDAO.findOne(BasicDAO.java:188)
.
.
.
Caused by: java.lang.RuntimeException: org.mongodb.morphia.mapping.MappingException: Error setting value from converter (IdentityConverter) for Doc.expressionTraversalTree to { "levels" : [ { "computeUnits" : [ { "computeType" : "MATH_EVAL" , "mvalExpression" : "doc['__count__'].value + 10" }] , "level" : 0}]}
at org.mongodb.morphia.mapping.EmbeddedMapper.fromDBObject(EmbeddedMapper.java:74)
at org.mongodb.morphia.mapping.Mapper.readMappedField(Mapper.java:768)
at org.mongodb.morphia.mapping.Mapper.fromDb(Mapper.java:230)
at org.mongodb.morphia.mapping.EmbeddedMapper.readMapOrCollectionOrEntity(EmbeddedMapper.java:206)
at org.mongodb.morphia.mapping.EmbeddedMapper.readCollection(EmbeddedMapper.java:142)
at org.mongodb.morphia.mapping.EmbeddedMapper.fromDBObject(EmbeddedMapper.java:45)
... 14 more
Caused by: org.mongodb.morphia.mapping.MappingException: Error setting value from converter (IdentityConverter) for Doc.expressionTraversalTree to { "levels" : [ { "computeUnits" : [ { "computeType" : "MATH_EVAL" , "mvalExpression" : "doc['__count__'].value + 10" , "computeLevel" : 0 , "applyFilter" : false }] , "level" : 0}]}
at org.mongodb.morphia.converters.Converters.fromDBObject(Converters.java:128)
at org.mongodb.morphia.mapping.EmbeddedMapper.fromDBObject(EmbeddedMapper.java:56)
... 19 more
Caused by: java.lang.IllegalArgumentException: Can not set ComputeExpTraversalTree field Doc.expressionTraversalTree to com.mongodb.BasicDBObject
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168)
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81)
at java.lang.reflect.Field.set(Field.java:741)
at org.mongodb.morphia.mapping.MappedField.setFieldValue(MappedField.java:410)
at org.mongodb.morphia.converters.Converters.fromDBObject(Converters.java:126)
... 20 more
這將有助於看到實際的堆棧跟蹤。通常有一個「引起」部分,有助於看到。 – evanchooly
@evanchooly我已經添加了堆棧跟蹤。請確認。 –