1

我正在使用最新版本的DBFLOW库,我正在尝试将单列总和计算为countOfNewPosts

这是我的桌子:

public class CafeWebNewPostInformation extends BaseModel {
    @PrimaryKey
    @Column
    public int id;

    @Column
    public int cafeWebServerId;

    @Column
    public int countOfNewPosts;

    @Column
    @ForeignKey(tableClass = AlachiqCafeWebs.class,
            references = @ForeignKeyReference(columnName = "parentId", foreignKeyColumnName = "id"))
    private int parentId;

    @Column
    public int lastSavedId;

    @Column
    public int lastRequestedId;

    @Column
    public int lastRetrievedId;
}

这是我从这个表中得到的代码:

CafeWebNewPostInformation countOfNewPost =
        SQLite.select(
                Method.sum(CafeWebNewPostInformation_Table.countOfNewPosts).as("count")
        )
                .from(CafeWebNewPostInformation.class).querySingle();

我没有收到任何错误,这是结果:

截屏:

在此处输入图像描述

发生了什么 count,这个结果在哪里?

4

1 回答 1

4

问题解决了

想想看。你在打电话

SELECT SUM(`countOfNewPosts`) as 'count' FROM `CafeWebNewPostInformation`

这意味着您返回的结果仅包含该查询的单行计数。你不会得到任何错误,因为我们没有在游标上实现严格的列匹配。您需要定义一个@QueryModel QueryModels,它有一个名为 count 的字段:

@QueryModel // (add database reference)
public class CountOfPost {

  @Column
  public int count;
}

然后

CountOfPost count = SQLite.select(
  Method.sum(CafeWebNewPostInformation_Table.countOfNewPosts).as("count"))
  .from(CafeWebNewPostInformation.class)
  .queryCustomSingle(CountOfPost.class);  

或者您可以代替调用querySingle()call count()

参考

于 2017-08-03T08:50:45.980 回答