Session: How to defer operations?
Operations can be deferred till saveChanges
is called by using defer
method in advanced()
session operations. There are four types of commands that can be deferred:
Syntax
public void defer(ICommandData... commands);
Parameters | ||
---|---|---|
ICommandData[] | Array of commands implementing ICommandData interface. |
Example
Product product1 = new Product();
product1.setName("My Product");
product1.setSupplier("suppliers/999");
PutCommandData command1 = new PutCommandData();
command1.setKey("products/999");
command1.setDocument(RavenJObject.fromObject(product1));
command1.setMetadata(new RavenJObject());
session.advanced().defer(command1);
Supplier supplier = new Supplier();
supplier.setName("My Supplier");
PutCommandData command2 = new PutCommandData();
command2.setKey("suppliers/999");
command2.setDocument(RavenJObject.fromObject(supplier));
command2.setMetadata(new RavenJObject());
session.advanced().defer(command2);
DeleteCommandData deleteCommandData = new DeleteCommandData();
deleteCommandData.setKey("products/1");
session.advanced().defer(deleteCommandData);