2013-10-21 78 views
0

使用不同版本的mongodb java客户端时出现更新错误。 我运行了依赖关系报告,发现只有1个用于mongdb java驱动程序的jar文件存在。 请指导为什么会出现此错误,我正尝试通过GORM更新域对象。Grails MongoDB NoSuchFieldError:ACKNOWLEDGED

dependencies { 
runtime "org.mongodb:mongo-java-driver:2.9.0" 
} 


plugins { 
compile (":mongodb:1.3.0"){ 
    excludes "mongo-java-driver"; 
} 
} 


Message: ACKNOWLEDGED 
Line | Method 
    ->> 646 | doInDB     in     
org.grails.datastore.mapping.mongo.engine.MongoEntityPersister$5 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 616 | updateEntry    in 
org.grails.datastore.mapping.mongo.engine.MongoEntityPersister 
|  78 | updateEntry . . . . . . in  '' 
| 846 | run      in  
org.grails.datastore.mapping.engine.NativeEntryEntityPersister$2 
|  33 | executePendingOperation in 
org.grails.datastore.mapping.core.impl.PendingOperationExecution 
| 364 | flushPendingOperations in org.grails.datastore.mapping.core.AbstractSession 
| 343 | flushPendingUpdates . . in  '' 
| 263 | flush     in  '' 
| 126 | flush . . . . . . . . . in org.grails.datastore.mapping.mongo.MongoSession 

回答

1

WriteConcern.ACKNOWLEDGED仅在MongoDB Java驱动程序版本2.10及以上版本中可用。您可能需要更新您的蒙戈版本:

dependencies { 
runtime "org.mongodb:mongo-java-driver:2.10.0" 
} 

,或者您需要删除您蒙戈司机在这里的排斥:

compile (":mongodb:1.3.0"){ 
    excludes "mongo-java-driver"; 
} 

,取而代之的是:

compile ":mongodb:1.3.0" 

如果您采取第二种选择,这将使用Mongo Java驱动程序的2.11版本,这是此插件代码所期望的。使用早于2.11版本的驱动程序可能会导致这些问题。