换句话说:一个Order
具有0-n Books
,一个Order
被分配给一个Customer
。
就我而言,我有bookId
。 我想在获得所有相关项目(预定,订单和客户)并且确定所有项目都存在时启动某些功能-我只需要启动一次。我试图通过以下方式解决它:
ViewModel:
private LiveData<Book> book;
private LiveData<Order> order;
private LiveData<Customer> customer;
public MyViewModel(Application app) {
...
book = bookRepository.getBookLiveData(id);
order = Transformations.switchMap(book, b -> orderRepository.getOrder(b.getIdOrder()));
customer = Transformations.switchMap(order, o -> customerRepository.getCustomer(o.getIdCustomer()));
}
但是,此解决方案无效,我相信可以使用Room / LiveData进行更优雅的处理。
我还尝试了另一种方法-创建以下对象BookOrderCustomer
:
public class BookOrderCustomer {
@Embedded
public Book book;
@Embedded
public Order order;
@Embedded
public Customer customer;
}
但这无法按预期工作,Dao
的查询始终返回null。
任何想法如何解决这种情况?谢谢。