gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 10:24:49 25 4
gpt4 key购买 nike

我正在研究 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 属性的目的是什么?

最佳答案

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

例如,如果在您的代码中您 获取 product ,你更新 它的属性,同时对象 已更改 在数据库中(另一段代码更新了它),那么你 保存 it :您正在尝试使用 更新对象版本 2 ,但它有 版本 3 数据库中。

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

不知道你要找的功能是否会在OrientDB中实现.
如果你不需要它,那就不要做。如果你真的需要这个,你可以自己做,也许通过创建一个 Product_old 类并在更新时用以前的记录填充它。

关于version-control - OrientDB,如何检索以前的记录版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25350479/

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