This is my method for adding/updating
a record on my Configuration table
public static void saveConfiguration(Configuration model) {
Amplify.DataStore.save(model,
success-> logEvent("Configuration added to DataStore"),
failure -> logErrorEvent("Failed to add configuration in DataStore")
);
}
Amplify Model/Schema:
type Configuration @model @auth(rules: [{allow: owner}]) {
id: ID!
name: String
email: String
companyName: String
}
For example, I have a record:
id | name | companyName | |
---|---|---|---|
12345 | Name A | [email protected] | Company A |
To update this, I will construct a Configuration model and call saveConfiguration
method:
Configuration amplifyConfiguration = Configuration.builder()
.name("Name B")
.email("[email protected]")
.companyName("Company B")
.id("12345") // primary key
.build();
saveConfiguration(amplifyConfiguration);
The record will be updated to:
id | name | companyName | |
---|---|---|---|
12345 | Name B | [email protected] | Company B |
For some specific scenario, what I want is when I construct a Configuration
model with updated name only for example, it will only update that column.
// updated name only
Configuration amplifyConfiguration = Configuration.builder()
.name("Name C")
.id("12345") // primary key
.build();
saveConfiguration(amplifyConfiguration);
I need the record to be like this:
id | name | companyName | |
---|---|---|---|
12345 | Name C | [email protected] | Company A |
Actual result:
id | name | companyName | |
---|---|---|---|
12345 | Name C |
email and companyName is empty since I didn't set any value.