Как обновить значение столбца в базе данных комнаты Android путем умножения еще двух столбцов? - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть столбец (A), и я хочу, чтобы это значение было умножением столбца (B) на столбец (C).

Как реализовать это в базе данных комнаты Android?Что мне нужно поместить в Дао, репозиторий, модель представления и действие, чтобы оно работало?

1 Ответ

0 голосов
/ 28 сентября 2019

Выполнено с помощью следующего кода:

сначала добавьте следующий код в Dao:

 @Query ("UPDATE table SET A = B*C")
    void multiply();

, затем добавьте эту AcyncTask в хранилище:

private static class MultiplyAsyncTask extends AsyncTask<Void, Void, Void> {

        private SomeDao asyncTaskDao;

        MultiplyAsyncTask(SomeDao dao) {
            asyncTaskDao = dao;
        }

        @Override
        protected Void doInBackground(Void... voids) {
            asyncTaskDao.multiply();
            return null;
        }
    }

,,,и этот код также должен быть реализован в хранилище:

public void multiplyColumns(){
        MultiplyAsyncTask task = new MultiplyAsyncTask (SomeDao);
        task.execute();
    }

Затем вызовите метод в ViewModel:

public void multiplyColumns(){
        repository.multiplyColumns();
    }

Наконец, реализуйте этот метод в Activity / Fragment, где данныевставлены в таблицу в onActivityResult:

  SomeViewModel.insertData(data);
  SomeViewModel.multiplyColumns();

Это сработало со мной, но, пожалуйста, если у вас есть лучшее решение, поделитесь им здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...