如何通过将另外两列相乘来更新android room数据库中的列值?

如何通过将另外两列相乘来更新android room数据库中的列值?,android,sql,database,sqlite,android-room,Android,Sql,Database,Sqlite,Android Room,我有一列(a),我希望它的值是(B)列乘以(C)列 如何在android room数据库中实现这一点? 我需要在Dao、存储库、视图模型和活动中添加什么才能使其正常工作?通过以下代码完成: 首先在Dao中添加以下代码: @Query ("UPDATE table SET A = B*C") void multiply(); 然后将此AcyncTask添加到存储库: private static class MultiplyAsyncTask extends AsyncTask<

我有一列(a),我希望它的值是(B)列乘以(C)列

如何在android room数据库中实现这一点?
我需要在Dao、存储库、视图模型和活动中添加什么才能使其正常工作?

通过以下代码完成:

首先在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();
    }
最后,在活动/片段中实现此方法,其中数据插入到onActivityResult中的表中:

  SomeViewModel.insertData(data);
  SomeViewModel.multiplyColumns();
这对我很有效,但如果你有更好的解决方案,请在这里分享