Morphia @Version 不工作
Morphia @Version Not Working
我正在使用吗啡 0.109 并定义了一个基 class 如下:
@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;
}
我相信我也坚持这一点。我尝试了以下修复但没有成功:
- 移动子项中的版本注释 class。
- 删除版本参数的 '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" );
}
我正在使用吗啡 0.109 并定义了一个基 class 如下:
@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;
}
我相信我也坚持这一点。我尝试了以下修复但没有成功:
- 移动子项中的版本注释 class。
- 删除版本参数的 '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" );
}