Saving Multiple Objects¶
This API stores multiple objects in a data table with a single request. Consider the following example, it demonstrates an API call which saves two objects in the Person
data table:
List<Map<String, Object>> persons = new ArrayList<>();
Map<String, Object> person1 = new HashMap<>();
person1.put( "age", 24 );
person1.put( "name", "Joe" );
persons.add( person1 );
Map<String, Object> person2 = new HashMap<>();
person2.put( "age", 34 );
person2.put( "name", "Betty" );
persons.add( person2 );
Backendless.Data.of( "Person" ).create( persons, new AsyncCallback<String>()
{
@Override
public void handleResponse( List<String> response )
{
Log.i( "MYAPP", "Objects have been saved" );
}
@Override
public void handleFault( BackendlessFault fault )
{
Log.i( "MYAPP", "Server reported an error " + fault );
}
} );
The result of running the sample above is two objects saved in the database:
Blocking API¶
public List<String> Backendless.Data.of( "TABLE-NAME" ).create(
List<Map<String, Object>> objects ) throws BackendlessException
public <E> List<String> Backendless.Data.of( E ).create(
List<E> objects ) throws BackendlessException
Non-Blocking API¶
public void Backendless.Data.of( "TABLE-NAME" ).create(
List<Map<String, Object>> objects,
AsyncCallback<List<String>> responder )
public <E> void Backendless.Data.of( E ).create(
List<E> objects,
AsyncCallback<List<String>> responder )
where:
Argument | Description |
---|---|
TABLE-NAME |
Name of the table where the objects expressed via java.util.Map instances will be saved. |
E |
Java class of the data objects to save in the database. |
objects |
A collection of Java objects to save in the database, must be of type E or java.util.Map (depending on the method used). |
responder |
a responder object which will receive a callback when the method successfully saves the objects or if an error occurs. Applies to the non-blocking method only. |
Return Value¶
The API returns a collection of object IDs for the objects created in the database. The order of the objectId
values in the response matches the order of the objects in the request.
The Backendless server implementation enforces the following rules:
- All objects in the request must be of the same type.
- Objects in the request may have different set of properties. If a column does not exist for a property, Backendless will dynamically create it, if the Dynamic Schema Definition configuration is enabled.
- Objects in the request may have a unique
objectId
value that is not used in the database. - Maximum number of objects in a single request is 100 for Backendless Cloud. It is configurable for Backendless Pro and Managed Backendless.
- A request will be rejected by the server, if there is no
Create
permission granted to the user identity/roles associated with the request.