Привет, ребята. Я пытаюсь сохранить объекты с отношениями в Backendless через API.У меня есть два класса, а именно Task и Reminder.Задача может быть связана со многими напоминаниями, поэтому мне нужно соотношение 1: N между таблицей задач и таблицей напоминаний в Backendless.Мой класс задач выглядит следующим образом:
public class Task {
public Date created;
public Date updated;
private List<Reminder> reminders = null;
private String ownerId;
@PrimaryKey
@NonNull
private String objectId;
@NonNull
private String taskTitle;
@NonNull
private Date deadline;
@NonNull
private int isCompleted = 0;
@NonNull
private int isExpired = 0;
public String getOwnerId() {
return ownerId;
}
public void setOwnerId(String ownerId) {
this.ownerId = ownerId;
}
@NonNull
public String getObjectId() {
return objectId;
}
public void setObjectId(@NonNull String objectId) {
this.objectId = objectId;
}
public List<Reminder> getReminders() {
return reminders;
}
public void setReminders(List<Reminder> reminders) {
this.reminders = reminders;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
public Date getUpdated() {
return updated;
}
public void setUpdated(Date updated) {
this.updated = updated;
}
@NonNull
public int getIsCompleted() {
return isCompleted;
}
public void setIsCompleted(@NonNull int isCompleted) {
this.isCompleted = isCompleted;
}
@NonNull
public int getIsExpired() {
return isExpired;
}
public void setIsExpired(@NonNull int isExpired) {
this.isExpired = isExpired;
}
public String getTaskTitle() {
return taskTitle;
}
public void setTaskTitle(String taskTitle) {
this.taskTitle = taskTitle;
}
public Date getDeadline() {
return deadline;
}
public void setDeadline(Date deadline) {
this.deadline = deadline;
}
}
Класс напоминания:
public class Reminder {
private String title;
private Date time;
private String objectId;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
public String getObjectId() {
return objectId;
}
public void setObjectId(String objectId) {
this.objectId = objectId;
}
}
Я сохраняю объекты и устанавливаю соотношение, как показано ниже:
public void saveTaskToServer(final Task task) {
List<Reminder> remindersList = new ArrayList<>();
remindersList = task.getReminders();
final List<Reminder> savedReminders = new ArrayList<>();
if(remindersList!=null && remindersList.size()!=0) {
for
(Reminder reminder : remindersList) {
reminder.setTitle(task.getTaskTitle());
Backendless.Persistence.save(reminder, new AsyncCallback<Reminder>() {
@Override
public void handleResponse(Reminder response) {
savedReminders.add(response);
}
@Override
public void handleFault(BackendlessFault fault) {
Log.i("error saving remidners", fault.toString());
}
});
}
}
Backendless.Persistence.save(task, new AsyncCallback<Task>() {
@Override
public void handleResponse(Task response) {
newTask = response;
Log.i("id is ", newTask.getObjectId());
insertTask(response);
snackbarMessage.postValue("Task Created Successfully.");
}
@Override
public void handleFault(BackendlessFault fault) {
Log.i("error", fault.getMessage());
}
});
Backendless.Persistence.of(Task.class).addRelation(task, "reminders", savedReminders, new AsyncCallback<Integer>() {
@Override
public void handleResponse(Integer response) {
Log.i("response", "added" + response);
newTask.setReminders(savedReminders);
}
@Override
public void handleFault(BackendlessFault fault) {
Log.i("response", "error" + fault.toString());
}
});
}
Я попытался сохранить отношение, используя имя таблицы: Class: n вместо parentColumnName.Также попытался сохранить объекты напоминаний вместо самих объектов напоминания. Объекты задачи и напоминания должным образом сохраняются в бесконечной консоли в их соответствующих таблицах, но столбец напоминания в таблице задач по-прежнему остается пустым и никакие отношения не добавляются.Счетчик отношений в бэкэнд-вызове в Android Studio также возвращает 0. Любой совет действительно приветствуется.Я следовал этому примеру.