如何添加带参数和 return 数据的 ROOM 查询

How to add ROOM queries that take parameters and return data

我正在尝试创建一个新的房间数据库查询,它接受一个参数和 returns 一个列表。我阅读的所有文档和我观看的视频只显示了 DAO 查询(我已经完成),但我找不到的是如何为存储库和 viewModel classes 创建后续查询。 这是我的 DAO 查询;

@Query("SELECT * FROM member WHERE name = :reselectedPlayerName")
List<Member> getPlayersForReselection(String reselectedPlayerName);

我已经成功创建了一个 'LiveData' 查询(用于另一个任务),它不带任何参数,但这次我不想要实时数据查询,而且我看不到如何在存储库中创建查询class.

答案一如既往地简单!...但是当您只见树木不见森林时... 如果有人想要更多细节,我很乐意详细说明我发现了什么和做了什么,但这就是我最终做的; (我知道我说过我不想使用 LiveData 但我只是为了证明)

DAO

@Query("SELECT * FROM member WHERE name = :aStr")
LiveData<List<Member>> getPlayersForReselectionDb(String aStr);

存储库

public LiveData<List<Member>> getPlayersForReselectionDb(String aStr){
    reselectedMembers = memberDAO.getPlayersForReselectionDb(aStr);
    return reselectedMembers;
}

视图模型

public LiveData<List<Member>> getPlayersForReselectionDb(String aStr) {
    reselectedMembers = memberRepository.getPlayersForReselectionDb(aStr);
    return reselectedMembers;
}

片段

MemberViewModel memberViewModel = new 
ViewModelProvider(this).get(MemberViewModel.class);

memberViewModel.getPlayersForReselectionDb("Fred Bloggs").observe(this, 
new Observer<List<Member>>() {
    @Override
    public void onChanged(List<Member> members) {`enter code here`}
    }
});