当前位置: 首页 > 知识库问答 >
问题:

Morphia@版本不起作用

赖明煦
2023-03-14

我使用的是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;
}
{
    "_id" : ObjectId("54d26ed66aca89c0717e8936"),
    "className" : "test.ItemTest",
    "testValue" : NumberLong(1423077078)
}
@Entity
class MyClass {
   ...
   @Version Long v;
}
    null

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

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" );
}

共有1个答案

韦业
2023-03-14

此测试目前正在Jenkins上传递:https://github.com/mongodb/morphia/blob/master/morphia/src/test/java/org/mongodb/morphia/optimisticlocks/versiontest.java#l20-20

 类似资料:
  • 存储这些数据后,当需要更新数据时,首先将JSON字符串解析为实体,然后更新属性,然后在Redis中刷新数据。所以Redis中的数据将是最新的数据。 当我们需要将Redis数据保存到MongoDB时,我们首先将JSON字符串解析为实体,然后使用Morphia DAO保存实体,但是我们遇到了这个异常: 我知道这一定是乐观锁的问题。我们如何解决这个并发异常?

  • 我有一个工作函数应用,它获取了一个 blob 输入和一个事件中心输出(在 beta 版中工作)。随着最新更改,我的函数不再起作用。我已尝试根据发行说明更新host.json文件,但它没有引用blob触发器: 此外,当Microsoft.NET.Sdk.Functions从1.0.14升级到1.0.19时,无法识别bbloTrigger属性,我的代码将无法编译: 如前所述,这是因为最近的Azure

  • 这里有什么变通方法可以让它与Scala2.10.5一起工作吗?

  • 没什么好说的, 报警消息是而不是包含对象详细信息或类似信息的消息。 问题出在哪里?

  • 我试图从书中创建一个简单的servlet,但没有用。 我使用GlassFish服务器开源版本3.1.2.2、jdk1.7.0_10和记事本。 root\WEB-INF\classes\net\ensode\glassfishbook\formhandling\FormHandlerServlet.class : root/web.xml: root/dataentry.html: 我在控制台中通过

  • 我正在一起使用Cucumber-JVM和Selenium WebDriver。我在eclipse中有一个Maven项目,pom.xml文件的依赖关系如下所示: