When creating a new record with linked elements, it is possible to use sub-queries for specifying the linked elements. It is even possible, to add a 'sub-insert' to force OrientDB to insert the linked element in the sub-insert first, and then insert the main object which maintain a link to the single element just created before.
But why is this not possible if the linked element is a collection? For the example data structure: create class Address create property Address.street String create property Address.city String create class Client create property Client.hq link Address create property Client.subs linkset Address I can do the following three alternatives. I can use a sub-insert for a single linked record (hq). And I can use a sub-query or an array of record-ids, since the sub-query returns an array of record-ids as well. insert into client set name = 'client 1', hq = (insert into address set street = 'Long street', city = 'London') insert into client set name = 'client 2', subs = (select from address where city = 'London') insert into client set name = 'client 3', subs = [#11:6,#11:0] What should I do to achieve the following? Actually, the two insert statement return two corresponding @rid. My goal is to create the addresses and the client object in one statement, since transaction is almost impossible here. insert into client set name = 'client 4', subs = [ (insert into address set city = 'city 2'), (insert into address set city = 'city 3') ] This is the error message I got: Error: com.orientechnologies.orient.core.exception.OValidationException: The field 'Client.subs' has been declared as LINKSET but the value is not a record or a record-id -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
