带有本地db的代码可以正常工作,但是在env中失败,并显示错误No value

时间:2018-09-19 18:02:44

标签: spring

java.util.NoSuchElementException: No value present
    at java.util.Optional.get(Optional.java:135) ~[na:1.8.0_172]
    at com.publicis.sapient.ppc.analyticstool.createec2instance.service.EC2InstanceService.addTags(EC2InstanceService.java:146) ~[classes/:na]
    at com.publicis.sapient.ppc.analyticstool.createec2instance.service.EC2InstanceService.createEc2Instance(EC2InstanceService.java:246) ~[classes/:na]
    at com.publicis.sapient.ppc.analyticstool.createec2instance.service.EC2InstanceService$$FastClassBySpringCGLIB$$802d3e99.invoke(<generated>) ~[classes/:na]

下面是错误所在的代码行:

String userName = userRepository.findById(1).get().getName();

1 个答案:

答案 0 :(得分:0)

在调用final MongoClient mongoClient = new MongoClient(new MongoClientURI(mongoURIString)); final MongoDatabase blogDatabase = mongoClient.getDatabase("yourDB"); MongoCollection<Document> postsCollection = blogDatabase.getCollection("yourCollection"); ObjectId _id = new ObjectId("4e71b07ff391f2b283be2f95"); ObjectId arrayId = new ObjectId("4e639a918dca838d4575979c"); Bson filter = Filters.and(Filters.eq( "_id", id ), Filters.eq("array._arrayId", arrayId)); Bson setUpdate = Updates.set("array.$.someField", "updated"); postsCollection.updateOne(postFilter, setUpdate); 之前检查该值是否存在,否则该值一定不能存在,并且会出现错误。

get()