Beantwortung meiner eigenen Frage zur Freude aller.
Ich glaube, ich habe es nicht sicher gelöst.
Es sieht so aus, als ob es beim Testen funktioniert, wenn die fileObjects viele Files haben .
Der richtige fileHash wird tatsächlich aktualisiert.
UpdateOperations<BatchData>updateOperations=mongo.createUpdateOperations
(BatchData.class)
.disableValidation().set("fileObjects.$.fileHash",hash).enableVali..;
mongo.update(mongo.createQuery(BatchData.class)
.filter("uuid",theBatch.uuid)
.filter("fileObjects.fileName","theFileName"),updateOperations);