java – 在Morphia中如何更新ArrayList中的一个嵌入对象
发布时间:2020-12-15 08:47:22 所属栏目:Java 来源:网络整理
导读:使用 Mongodb和Morphia并看到很多高级答案如何做到这一点真的很新. 如果有可能我想简单地做这个@Embedded对象 包含文件对象的fileObjects. 我无法更新文件中的字段. 我想只更新一个字段f.ex String fileHash. @Entitypublic class BatchData { @Id private O
使用
Mongodb和Morphia并看到很多高级答案如何做到这一点真的很新.
如果有可能我想简单地做这个@Embedded对象 我无法更新文件中的字段. 我想只更新一个字段f.ex String fileHash. @Entity public class BatchData { @Id private ObjectId id; @Embedded public ArrayList<Files> fileObjects = new ArrayList<Files>(); } UPDATE .. @Embedded List<Integer> roomNumbers = new ArrayList<Integer>(); 以下是我到目前为止的尝试: mongo.createUpdateOperations(BatchData.class).add("fileObjects",Files,false); 此代码插入的文件已在mongo中. false不会检测到它并将其插入数组的末尾.我可以在文件中添加唯一ID,以便检测到数据中是否存在要插入的文件,然后只更新它? @Embedded public class Files { public Files() { } public int position; public String fileName = ""; public String fileHash = ""; public Files(int pos,String fileName,String fileHash) { this.position = pos; this.fileName = fileName; this.fileHash = fileHash; } } 阅读其他答案,如morphia-mongodb-accessing,但他已经有了 解决方法
为任何人的喜悦回答我自己的问题.
我想我解决了它不确定. 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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |