我通过其Document API使用OrientDB和Java.我有一个简单的类叫items有一个属性ID.我明确地声明了这样的架构:
OSchema schema = db.getMetadata().getSchema();
OClass itemsClass = schema.createClass("items");
itemsClass.createProperty("ID", OType.LONG);
Run Code Online (Sandbox Code Playgroud)
然后在ID:创建索引:CREATE INDEX items.ID ON items (ID) UNIQUE.
现在,当我创建一个新项目(类似ODocument doc = new ODocument("items")等)时,我希望在数据库上生成新项目的ID(类似于RDBMS中的序列).如何使用OrientDB的Java Document API执行此操作?
OrientDB不支持串行(我们遇到了问题),因此您可以通过这种方式管理自己的计数器(例如使用SQL):
create class counter
insert into counter set name='mycounter', value=0
Run Code Online (Sandbox Code Playgroud)
然后每次你需要一个新的号码,你可以做:
update counter incr value = 1 where name = 'mycounter'
Run Code Online (Sandbox Code Playgroud)
这可以通过以下方式在SQL批处理中工作:
begin
let $counter = update counter incr value = 1 where name = 'mycounter' return after
insert into items set id = $counter.value, qty = 10, price = 1000
commit
Run Code Online (Sandbox Code Playgroud)
通过使用Java,你可以做同样的事情:创建单独的类"计数器",每次递增文档值并保存它.
| 归档时间: |
|
| 查看次数: |
1751 次 |
| 最近记录: |