RxRoom Kotlin: сгенерированный Dao - ошибка: пользователи локальной переменной доступны изнутри внутреннего класса;должен быть объявлен окончательным - PullRequest
0 голосов
/ 29 ноября 2018

Я использую 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>

работает

...