将 List<Object> 返回给变量;

Returning List<Object> to variables;

我在做房间数据库


    @Query("SELECT distinct UserID FROM USER WHERE CovidStat=='T'")
    public List<USER> checkCovid();

    @Query("SELECT DISTINCT PID,VisitDate FROM USER_PLACE,USER WHERE User.UserID=USER_PLACE.UID AND UID=(:UID)")
    int selectCovidPlace(int UID);

我想要 checkCovid() 到 return UserID,其中 CovidStat='T' 我想将 ID 放入 selectCovidPlace 以识别该 ID 去过的地方。问题是 checkCovid 会 return 给我一个列表而不是 1 个变量,因为它不仅有 1 个人会有 CovidStat='T',但我不确定如何将列表放入 selectCovidPlace() .

这里你应该使用 IN clause 如下:

 @Query("SELECT DISTINCT PID,VisitDate FROM USER_PLACE,USER WHERE User.UserID=USER_PLACE.UID AND UID IN (:UIDs)")
    int selectCovidPlace(List<Integer> UIDs);

我不熟悉 SQLite。但是 SQL 语法应该是通用的。

使用 IN 语句怎么样?

像这样... WHERE User.UserID=USER_PLACE.UID AND UID IN (:UID)")

然后你可以传递List作为参数。