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`

つまり、返される結果には、そのクエリからの単一行のカウントのみが含まれます。Cursor で厳密な列一致を実装していないため、エラーは発生しません。count という単一のフィールドを持つ@QueryModel QueryModelsを定義する必要があります。

@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 に答える