如何在DBFlow

时间:2016-03-16 12:07:18

标签: dbflow

我正在使用DBflow。我已多次尝试按以下方式进行查询:

public class ScoreRepository {

    public List<Score> findAllScore() {
        return SQLite.select()
                .from(Score.class)
                .queryList();
    }

    public List<String> findScore01() {
        return SQLite.select()
                .from(Score.class)
                .queryList();
    }
}

在我的情况findScore01()中,此方法不起作用。我想制作一个列字符串列表。我不想制作一个对象列表。

2 个答案:

答案 0 :(得分:0)

queryList 会为您提供“Score”类的列表。要获取自定义数据,

例如(两个表的连接,或者在您的情况下,只有一列)

你需要创建一个从QueryModel扩展的类。然后使用

.queryCustomList(customclass.class); 

那会给你

List< customclass > ls; 

查看此答案以获取更多详细信息:

Get custom Data from 2 tables

答案 1 :(得分:0)

您可以使用queryCustomList从现有表中获取子表或连接两个表。与上面提到的Farhan一样,您可以创建一个包含所需字段的QueryModel类,并使用它来检索分数,但它仍然是您的自定义模型查询类的列表,而不是您需要的字符串列表。

我能想到的唯一解决方案是循环结果列表并生成一个字符串列表,如:

List<Score> scoreList = SQLite.select(Score_Table.score01)
                .from(Score.class)
                .queryList();
List<String> score01List = new ArrayList<>();
foreach(Score score: scoreList) {
    score01List.add(score.getScore01());
}