从 select 中插入记录到 OrientDB 类的嵌入字段 [英] Insert records into embedded field of OrientDB class from select
问题描述
我正在评估 OrientDB 数据库.
I am evaluating OrientDB database.
我有两个从关系数据库导入的文档类.
I have two document classes imported from a relational database.
class Order with properties (ID: integer, OrderItems: EmbeddedList of OrderItem)
和
class OrderItem with properties (ID: integer, OrderID: integer, PropA: string)
两个类都填充了来自数据库的数据(字段 Order.OrderItems 除外).
Both classes are filled with data from the database (except field Order.OrderItems).
现在我想根据 OrderID 将 OrderItem 类中的数据插入到 Order 类中.
Now I would like to insert data from class OrderItem into class Order based on OrderID.
我尝试过 SQL 之类的
I have tried SQL like
update Order set OrderItems = (select from OrderItem where OrderID = Order.ID)
没有成功,有类似的错误
without success, with error like
Order.OrderItems"字段已声明为 EMBEDDEDLIST,但值为具有有效 RecordId 的文档...
The field 'Order.OrderItems' has been declared as EMBEDDEDLIST but the value is document with the valid RecordId ...
我知道嵌入的记录不应该有 RecordId 所以我试过了
I do understand that embedded record should not have RecordId so I have tried
update Order set OrderItems = (select PropA from OrderItem where OrderID = Order.ID)
没有成功,有类似的错误
without success, with error like
字段 'Order.OrderItems' 已声明为带有链接类 'OrderItem' 的 EMBEDDEDLIST 但该记录没有类 ...
The field 'Order.OrderItems' has been declared as EMBEDDEDLIST with linked class 'OrderItem' but the record has no class ...
我也试过
update Order
set OrderItems = (select @class, PropA from OrderItem where OrderID = Order.ID)
没有成功.
还有其他方法吗(OrientDB 2.1.4)...
Is there any other way (OrientDB 2.1.4) ...
啤酒
推荐答案
我找到了解决方案
update Order
set OrderItems = (select $current.exclude('@rid') from OrderItem where $parent.$current.ID = OrderID)
这篇关于从 select 中插入记录到 OrientDB 类的嵌入字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!