草庐IT

mongodb-driver-async

全部标签

java - 在 Java 中从 MongoDB 读取 Integer 字段时出现长类型转换错误

我正在从Rails应用程序写入的Java访问MongoDB实例。我正在检索应存储在Long中的整数值,因为它们可以超过32位。此代码将编译:this.profile_uid=(Long)this.profile.get("uid");但是,我遇到类型转换运行时错误:Exceptioninthread"main"java.lang.ClassCastException:java.lang.Integercannotbecasttojava.lang.Long这大概是因为该字段由Mongo作为Integer返回,但我知道某些ID可以作为Longs出现,并且出于各种原因我无法更改写入DB的类

java - 手动分配 ID 时,Spring Data MongoDB 注释 @CreatedDate 不起作用

我正在尝试使用审计在我的对象中保存dateCreated和dateUpdated,但是由于我手动设置了ID,所以还有一些额外的工作。遵循OliverGierke在DATAMONGO-946中的建议我正在尝试弄清楚如何正确实现它。作为上述Jira任务中的原始发布者,我从这里下载了示例https://github.com/spring-guides/gs-accessing-data-mongodb.git并对其进行了一些修改:packagehello;importorg.springframework.data.annotation.CreatedDate;importorg.sprin

java - 是否可以在单元测试期间禁用 Spring 的 @Async?

我有一个用@Async注释的方法说@AsyncpublicvoidmakeFood(){}但我只是想测试该方法的逻辑。是否可以同步测试? 最佳答案 是的,只要你的配置没有@EnableAsync,方法就会同步执行。 关于java-是否可以在单元测试期间禁用Spring的@Async?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/29929824/

java - Spring Data MongoDB 尝试为自定义存储库方法生成查询

基于SpringDataDocumentdocumentation,我提供了存储库方法的自定义实现。自定义方法的名称引用了域对象中不存在的属性:@DocumentpublicclassUser{Stringusername;}publicinterfaceUserRepositoryCustom{publicUserfindByNonExistentProperty(Stringarg);}publicclassUserRepositoryCustomImplimplementsUserRepositoryCustom{@OverridepublicUserfindByNonExist

java - 多语言堆栈的集成测试(Java/MongoDB/RabbitMQ...)

我知道RabbitMQ是用Erlang编写的,因此不能像我们使用ActiveMQJMS代理那样嵌入到JVM中。但实际上有一些项目是用另一种语言完成的,可以很容易地嵌入以进行集成测试。例如,用C++编写的MongoDB可以在JVM集成测试的上下文中轻松启动/停止:https://github.com/flapdoodle-oss/embedmongo.flapdoodle.de也有人将其移植到Java:https://github.com/thiloplanz/jmockmongo/所以我想知道当我的应用程序是用Java编写的,而其他技术是用另一种语言编写的(比如用于RabbitMQ的E

java - 需要帮助在 Spring/Maven 上配置 MongoDB

当我在Spring中编码时,我总是使用注释,并且在涉及基于xml的配置时总是卡住。现在,我被困在一个可能很简单的问题上。如果你能帮我解决这个问题,我将不胜感激。org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'mongoTemplate'definedinServletContextresource[/WEB-INF/spring-servlet.xml]:Instantiationofbeanfailed;nestedexceptionisorg.springframew

java - MongoDB Java 驱动程序 3.x : How to pass allowDiskUse=true to aggregate() method?

我正在使用mongo-java-driver3.0.2。我有一个使用MongoCollection.aggregate(Listpipeline)的方法排序和限制:privatestaticMongoIterableselectTop(intn){BasicDBObjectsortFields=newBasicDBObject("score",-1);BasicDBObjectsort=newBasicDBObject("$sort",sortFields);BasicDBObjectlimit=newBasicDBObject("$limit",n);Listpipeline=new

java - 通过 json 字符串查询 Spring Data MongoDB

我的代码需要支持客户端发送的任何查询。客户端将以json格式发送查询。我使用javamongo驱动程序低级api使用以下代码完成了此操作,BasicDBObjectqueryObject=(BasicDBObject)JSON.parse(whereJson.toString());由于我是springdatamongodb的新手,我无法在Query或Criteria类中找到类似的解决方案。我检查了不同的教程,但找不到任何.是否可以在springdatamongodb中执行,或者我应该使用低级api本身? 最佳答案 您可以使用Bas

java - 直接使用 Spring @Async 与 CompleteableFuture 相比有什么优势?

使用SpringAsync有什么好处?vs.自己返回CompletableFuture? 最佳答案 两者之间没有“vs.”——它们是互补技术:CompletableFuture提供了一种方便的方式来链接异步计算的不同阶段——比Spring的ListenableFuture更灵活;@Async为您的执行器提供标准的Spring配置,方便地管理您的后台任务和线程。但两者可以结合使用(sinceSpring4.2)。假设您想将以下方法变成返回CompletableFuture的后台任务:publicStringcompute(){//do

java - 使用 MongoDB-Java 驱动程序从数组中删除条目

我有像这样的JSON:{"_id":"1","_class":"com.model.Test","itemList":[{"itemID":"1","itemName":"Foo","resources":[{"resourceID":"1","resourceName":"FooTest1"},{"resourceID":"2","resourceName":"FooTest2"}]}]}我需要能够删除itemList的记录之一。我做了以下事情:publicvoidremoveItemByID(StringdocID,StringitemID)throwsException{Mong