Как использовать двунаправленную связь «многие ко многим» с greenDAO?

#android #database #orm #greendao #greendao3

#Android #База данных #orm #greendao #greendao3

Вопрос:

Прочитав страницы с Отношениями документа, я могу использовать отношение «многие ко многим», подобное этому:

 @Entity
public class Product {
    @Id private Long id;

    @ToMany
    @JoinEntity(
            entity = JoinProductsWithOrders.class,
            sourceProperty = "productId",
            targetProperty = "orderId"
    )
    private List<Order> ordersWithThisProduct;
}

@Entity
public class JoinProductsWithOrders {
    @Id private Long id;
    private Long productId;
    private Long orderId;
}

@Entity
public class Order {
    @Id private Long id;
}
  

Теперь, с помощью этого кода, могу ли я установить двунаправленные отношения и получить доступ из заказа к списку продуктов, связанных с ним?
Или мне тоже следует добавить список продуктов в класс Order? Что-то вроде этого:

 ...
@Entity
public class Order {
    @Id private Long id;

    @ToMany //I don't know if this is corect btw.
    private List<Product>  productsForThisOrder;
}
  

Ответ №1:

Вот как вы должны это сделать:

 @Entity
public class Order {
    @Id private Long id;

    @ToMany
    @JoinEntity(
        entity = JoinProductsWithOrders.class,
        sourceProperty = "orderId",
        targetProperty = "productId"
    )
    private List<Product>  productsForThisOrder;
}