如何使存储库占用多个列?

How can I make the repository take more than one column?

下面的代码来自我基于另一个简单的应用程序制作的应用程序,其中实体只有一列。 现在我添加了另一列 (materialBrand),但我在 AsynkTask 的存储库 class 上实现相同的列时遇到了困难。 请帮助。

这是 class 实体:

@Entity(tableName = "material_table")
public class MaterialEntity {

    @PrimaryKey
    @NonNull
    @ColumnInfo(name = "material_name")
    private String mMaterialName;
    @ColumnInfo(name = "material_brand")
    private String mMaterialBrand;

    public MaterialEntity(@NonNull String materialName, String materialBrand) {
        this.mMaterialName = materialName;
        this.mMaterialBrand = materialBrand;
    }

    public String getMaterialName(){
        return this.mMaterialName;
    }

    public String getMaterialBrand(){
        return this.mMaterialBrand;
    }
}

这就是道:

@Dao
public interface MaterialDao {

    @Insert
    void insert(MaterialEntity materialName, MaterialEntity materialBrand);

    @Query("DELETE FROM material_table")
    void deleteAll();

    @Query("SELECT * from material_table ORDER BY material_name ASC")
    LiveData<List<MaterialEntity>> getAllMaterials();
}

这是存储库 Class:

public class MaterialRepository {

    private MaterialDao mMaterialDao;
    private LiveData<List<MaterialEntity>> mAllMaterial;

    public MaterialRepository(Application application) {
        MaterialRoomDatabase db = MaterialRoomDatabase.getDatabase(application);
        mMaterialDao = db.materialDao();
        mAllMaterial = mMaterialDao.getAllMaterials();
    }

    public LiveData<List<MaterialEntity>> getAllMaterials() {
        return mAllMaterial;
    }

    public void insert (MaterialEntity materialName, MaterialEntity materialBrand) {
        new insertAsyncTask(mMaterialDao).execute(materialName, materialBrand);
    }

    private static class insertAsyncTask extends AsyncTask<MaterialEntity, Void, Void> {

        private MaterialDao mAsyncTaskDao;

        insertAsyncTask(MaterialDao dao) {
            mAsyncTaskDao = dao;
        }

        @Override
        protected Void doInBackground(final MaterialEntity... params) {
            mAsyncTaskDao.insert(params[0]);
            return null;
        }
    }
}

下面的插入方法有两个参数作为参数

@道 public 接口 MaterialDao {

@Insert
void insert(MaterialEntity materialName, MaterialEntity materialBrand);

@Query("DELETE FROM material_table")
void deleteAll();

@Query("SELECT * from material_table ORDER BY material_name ASC")
LiveData<List<MaterialEntity>> getAllMaterials();

}

不能只发送一个参数。

  mAsyncTaskDao.insert(params[0]);