Как применить условия в базе данных номеров? - PullRequest
0 голосов
/ 09 июля 2020

Я использую базу данных комнат для сохранения деталей некоторых приложений в таблице. И получение данных в реальном времени.

Но я не могу использовать условия.

@Query("SELECT * FROM apps WHERE parent LIKE: parent")
    LiveData<List<App>> getAllApp(String parent);

Вот условие, которое я пытаюсь использовать в DAO. Но я не могу понять, где мне передать параметр в REPOSITORY и VIEWNODEL class;

Пожалуйста, помогите мне. Может быть, мой вопрос не совсем ясен, но, пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 09 июля 2020
public class AppRepository {

    private AppDao appDao;
    private LiveData<List<App>> appLiveData;


    AppRepository(Application application){
        Database database = Database.getDatabase(application);
        appDao = database.appDao();
        appLiveData = appDao.getAllApp();
    }


    LiveData<List<App>> getAllApp(){
        return appLiveData;
    }

    void insert(App app){
        Database.writer.execute(() ->{
            appDao.insert(app);
        });
    }

    void delete(App app){
        Database.writer.execute(() ->{
            appDao.delete(app);
        });
    }
}
public class AppViewModel extends AndroidViewModel {

    private AppRepository repository;
    private LiveData<List<App>> appLiveData;

    public AppViewModel(@NonNull Application application) {
        super(application);

        repository = new AppRepository(application);
        appLiveData = repository.getAllApp();
    }

    public LiveData<List<App>> getAllApp( ){
        return appLiveData;
    }

    public void insert(App app){
        repository.insert(app);
    }

    private void delete(App app){
        repository.delete(app);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...