Я использую RxRoom с Kotlin.В моем классе Дао Если я использую это:
@Insert
fun insertPaymentRef(paymentRef: PaymentRef): Single<Long>
Или это:
@Insert
fun insertPaymentRef(paymentRef: PaymentRef): Completable
сгенерированный класс Dao
выдает эту ошибку
ошибка: локальная переменная paymentRef доступна из внутреннего класса;должно быть объявлено окончательным
Пик sneek в сгенерированном классе таков:
public Single<Long> insertPaymentRef(PaymentRef paymentRef) {
return Single.fromCallable(new Callable<Long>() {
@Override
public Long call() throws Exception {
__db.beginTransaction();
try {
long _result = __insertionAdapterOfPaymentRef.insertAndReturnId(paymentRef);
__db.setTransactionSuccessful();
return _result;
} finally {
__db.endTransaction();
}
}
});
}
Единственный раз, когда я не получаю эту ошибкуесли я только сделаю свой insert
вызов следующим образом:
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertPaymentRef(paymentRef: PaymentRef)
Как мне заставить INSERT
работать в RxRoom: я включил зависимость RxRoom, и она работает, потому что если я пытаюсь сделать GET
звонки вот так
@Query(PaymentRefDbConstants.QUERY_PAYMENT_REF)
fun getPaymentRef(): Single<PaymentRef>
работает