OrientDB,如何检索以前的记录版本

葡萄干

我正在研究OrientDB,以便评估图形数据库的版本控制功能。

OrientDB中的每个记录都有一个@version属性,该属性在每次更新记录时都会增加。这表示支持版本控制。我已经建立了一个简单的示例(使用OrientDB SQL)进行测试:

create class Product
create property Product.name string
create property Product.price integer
insert into Product (name, price) values ('Fridge', 449)
update Product set price = 479 where name = 'Fridge'
select from Product

执行上述语句后,我得到以下查询结果:

{
    "result": [
        {
            "@type": "d",
            "@rid": "#14:0",
            "@version": 2,
            "@class": "Product",
            "name": "Fridge",
            "price": 479
        }
    ],
    "notification": "Query executed in 0.031 sec. Returned 1 record(s)"
}

在这种数据库状态下-如何检索记录的先前版本(在这种简单情况下为版本1)?通过OrientDB SQL语句和/或通过OrientDB Java API是否可以实现?如果不是-@version属性的目的是什么?

7月13日

@version属性的目的是检查在获取对象与更新对象之间是否进行了任何更新。

例如,如果在代码中获取a product更新其属性,与此同时,对象在数据库中已更改(另一段代码对其进行了更新),则将其保存:您正在尝试使用版本更新对象2,但数据库中具有版本3

这可以帮助您防止并发访问数据库。

我不知道您要寻找的功能是否会在中实现OrientDB如果您不需要它,那就不要做。如果确实需要此功能,则可以自己创建,也许可以通过创建Product_old类并用更新时的先前记录来填充它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取OrientDB中记录的所有版本

来自分类Dev

如何从数据库中检索以前的记录

来自分类Dev

如何检索以前的localStorage值?

来自分类Dev

如何检索以前的localStorage值?

来自分类Dev

如何从以前的版本添加PPA?

来自分类Dev

如何安装以前的Firefox版本?

来自分类Dev

如何检索特定版本的代理

来自分类Dev

MSI:如何删除所有以前的版本?

来自分类Dev

Pulumi:如何导出以前版本的Stack?

来自分类Dev

如何重置为以前的git版本?

来自分类Dev

如何从以前的版本中删除内核

来自分类Dev

如何运行以前版本的 snap 包

来自分类Dev

如何还原记录的特定版本

来自分类Dev

如何在MySQL中检查以前的记录?

来自分类Dev

如何从当前日期获取以前的记录?

来自分类Dev

如何回顾以前的相同类型的记录

来自分类Dev

从OrientDB检索OrientVertex对象

来自分类Dev

如何在插入时从OrientDB获取记录ID?

来自分类Dev

如何从elasticsearch检索旧版本的文档?

来自分类Dev

如何从Python检索当前安装的Selenium版本

来自分类Dev

如何检索早期版本的AWS SSM密码?

来自分类Dev

Laravel 5:如何根据日期检索记录?

来自分类Dev

如何在MySQL中检索重复的记录

来自分类Dev

如何使用talend集成检索空白记录

来自分类Dev

Grails:如何按特定属性检索记录?

来自分类Dev

如何仅检索那些没有关联记录的记录?

来自分类Dev

如何使用discord.py检索以前的消息

来自分类Dev

如何撤消更改并在Winform中检索以前的表单状态?

来自分类Dev

如何在OrientDB的引用记录中找到对特定字段的给定记录的引用?