Я получаю json, как показано ниже с сервера:
{ "customers": [
{
"customer_name": "name1",
"orders_list": [
{
"order_id": "1111111",
"order_type": "a",
"order_date": "11/02/2020 "
},
{
"order_id": "1111112",
"order_type": "b",
"order_date": "11/02/2020 "
},
{
"order_id": "1111113",
"order_type": "c",
"order_date": "11/02/2020 "
}
]
},
//more customers
]
}
Я получаю его с помощью Retrofit и хочу сохранить его в Objectbox.
Клиент entity:
@Entity
public class Customer {
@Id long id;
@SerializedName("customer_name")
private String customer_name;
@SerializedName("array_of_matchs")
@Transient
public List<Order> orders_list;
@Backlink
public ToMany<Order> orders;
//constructor , getters , setters ,...
}
Order Entity:
publi c class Order {
@Id
public long id;
@SerializedName("order_id")
private int order_id;
@SerializedName("order_type")
private String order_type;
@SerializedName("order_date")
private String order_date;
public ToOne<Customer> customer;
//constructor , getters , setters ,...
}
Gson преобразователь возвращает List
из Customer
s со всеми его заказы. Я пытался хранить клиентов, как показано ниже:
customersBox.put(list_of_customers_get_from_retrofit);
И заказы:
for (Customer each_customer : list_of_customers_get_from_retrofit ) {
orderBox.put(each_customer.orders_list);
}
Затем, когда я установил флажки с Браузер данных , все customerToOneRelationId
установлено на 0. Что с этим не так?
В таком случае, как мы можем установить связь между customer
и его Order
s списком? Как правильно хранить заказы?