一个LiveData中有多个对象

我有这个实体:

@Entity public class CartItem { @PrimaryKey(autoGenerate = true) private long id; private long itemId; private long serviceId; private String observation; @Ignore private Service service; @Ignore private Item item; } 

正如你所看到的,它由其他对象组成,在这种情况下, ServiceItem

在片段中,我以这种方式实现LiveData:

 CartItemViewModel model = CartItemViewModel.create(getActivity()); model.getLiveData().observe(this, new Observer<List>() { @Override public void onChanged(@Nullable List cartItems) { } 

它正在工作, onChange方法正在按预期调用。

这是我在kotlin中的ViewModel:

 class CartItemViewModel : ViewModel() { val liveData: LiveData<List> = MainApplication.getInstance().cartItemDao.liveData companion object { @JvmStatic fun create(fragment: FragmentActivity): CartItemViewModel = ViewModelProviders.of(fragment).get(CartItemViewModel::class.java) } } 

这里的重点是CartItem正在被加载,但是我怎样才能以正确的方式填充ItemService对象呢?

如果需要其他信息,请告诉我。 谢谢。

编辑:创建存储库,使onChanged不会被调用了。

 class CartItemRepository { companion object { fun getLiveData(): LiveData<List> { val liveData = MutableLiveData<List>() doAsync { val cartItems = MainApplication.getInstance().cartItemDao.all for (cartItem in cartItems) { val item = MainApplication.getInstance().itemDao.get(cartItem.itemId) cartItem.item = item val service = MainApplication.getInstance().serviceDao.get(cartItem.serviceId) cartItem.service = service } liveData.value = cartItems } return liveData } } }