Insérer requêteComment insérer des données et obtenir id comme paramètre out dans android room et rxjava 2?
@Insert(onConflict = OnConflictStrategy.REPLACE)
long insertProduct(Product product); //product id is auto generated
vue modèle
public Completable insertProduct(final String productName) {
return new CompletableFromAction(() -> {
Product newProduct = new Product();
newProduct.setProductName(productName);
mProductDataSource.insertOrUpdateProduct(newProduct);
});
}
Dans l'activité où j'ai appelé cette fonction ci-dessus je CompositeDisposable.
CompositeDisposable mDisposable = new CompositeDisposable();
mDisposable.add(mViewModel.insertProduct(productName))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(() ->{} ,throwable -> Log.e(TAG, "Error msg", throwable)));
Est-ce que je mets en œuvre dans le mauvais sens?
Ici, j'utilise android vue modèle où je fais face à des difficultés sur la façon d'écrire la fonction viewmodel. J'ai donné le code où j'utilise Completable pour insérer le produit. –
En tant que votre suggestion que je usage unique 'publique unique insertProduct (dernière chaîne productName) {return new simple () { @Override protégé subscribeActual vide (SingleObserver Super produit> observateur) { Produit newproduct = nouveau produit() newProduct.setProductName (productName); productDataSource.insertOrUpdateProduct (nouveauProduit); } }; } 'mais ce n'est pas le travail, peut-être me manque quelque chose. –
Je pense que vous devez vérifier les [docs] (https://github.com/ReactiveX/RxJava/wiki/Creating-Observables) sur la façon de créer un «Observable». – masp