gpt4 book ai didi

java - Morphia @Version 不工作

转载 作者:太空宇宙 更新时间:2023-11-04 06:14:03 24 4
gpt4 key购买 nike

我使用的是 morphia 0.109 并定义了一个基类,如下所示:

@Entity
public abstract class MorphiaData {
@Id protected ObjectId objectId;
@Version private Long mongodocversion;
}

以及预期的 Morphia 实体

public class ItemTest extends MorphiaData {
public Long testValue;
}

当我将 ItemTest 实例保存到 mongoDB 时,文档如下所示:

{
"_id" : ObjectId("54d26ed66aca89c0717e8936"),
"className" : "test.ItemTest",
"testValue" : NumberLong(1423077078)
}

我期望在文档中看到 mongodocversion 值。

吗啡文档提供了有关版本注释的以下信息:

This field will be automatically managed for you -- there is no need to set a value and you should not do so anyway.

@Entity
class MyClass {
...
@Version Long v;
}

我相信我也遵守这一点。我尝试了以下修复但没有成功:

  1. 在子类中移动版本注释。
  2. 删除版本参数的“私有(private)”声明。

如有任何建议,我们将不胜感激。

编辑添加:我正在使用的保存过程:

DBObject document = MongoDbFactory.getMorphia().toDBObject(this);

DB db = MongoDbFactory.getClient();
DBCollection coll = db.getCollection(noSqlCollection.toString());

if (this.objectId != null) {
//This is an update
BasicDBObject searchQuery = new BasicDBObject().append("_id", this.objectId);
coll.update(searchQuery, document);
} else {
//This is just an add
coll.insert(document);
this.objectId = (ObjectId)document.get( "_id" );
}

最佳答案

关于java - Morphia @Version 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28329702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com