Ошибка - получаю null при попытке получить из базы данных Room список объектов через (объекты точно есть)

У меня прописаны методы в Dao, в Repository, в ViewModel и в Activity чтобы получить из Room базы список List, но я получаю пустой список (ошибка attempt to invoke on a null Object reference) Объекты такие точно есть, поскольку такой-же метод, только с LiveData - работает, т.е. метод LiveData<List> getNoobs выносит список всех noobs через observer. Но в данном случае мне нужно просто получить список 5 случайных обектов без ЛивДата. Получаю null. Где может быть ошибка?.. спасибо.

In PersonDao:

@Dao
public interface PersonDao {
    //other methods of PersonDao

    @Query("SELECT * FROM person_table WHERE status = :status ORDER BY RANDOM() LIMIT 5")
    List<Person> getFivePersonsFrom(String status);
} 

In PersonRepository:

public class PersonRepository {
    private PersonDao mPersonDao;
    private List<Person> mFivePersonsFrom;

    //other methods

    List<Person> getFivePersonsFrom(String status) {
        PersonRoomDatabase.databaseWriteExecutor.execute(() -> {
            mPersonDao.getFivePersonsFrom("noob");
        });
        return mFivePersonsFrom;
    }
}

In PersonViewModel:

public class PersonViewModel extends AndroidViewModel {
    private PersonRepository mRepository;
    public List<Person> mFivePersonsFrom;
    public PersonViewModel(@NonNull Application application) {
        super(application);
        mRepository = new PersonRepository(application);
        mFivePersonsFrom = mRepository.getFivePersonsFrom("noob");
        //other methods
    }
    public List<Person> getFivePersonsFrom() {
        mRepository.getFivePersonsFrom("noob");
        return mFivePersonsFrom;
    }  
}

In MainActivity:

private CardStackView noobCardStackView;
private NoobAdapter noobAdapter;
List<Person> noobList;     
// other
protected void onCreate(Bundle savedInstanceState) {
    noobViewModel = new ViewModelProvider(this,
            ViewModelProvider.AndroidViewModelFactory.getInstance(this.getApplication()))
            .get(PersonViewModel.class);
    noobList = noobiewModel.getFivePersonsFrom();
noobAdapter = new NoobAdapter(new NoobAdapter.NoobDiff(), noobList); 
    noobCardStackView.setAdapter(noobAdapter);
    // methods
}

Ответы (0 шт):