0

これは、目的の結果を評価するために記述されたコードです。

   Calendar c7DaysAgo = Calendar.getInstance(); // 7 days ago
    c7DaysAgo.add(Calendar.DATE, -7);

    Calendar today = Calendar.getInstance(); // today
    today.add(Calendar.DATE, 0);

    Criteria criteria = session.createCriteria(Checkin.class)
            .add(Restrictions.like("fbuid", id))
            .add(Restrictions.between("date", today.getTime(), c7DaysAgo.getTime()));
    List<Checkin> checkinList = criteria.list();
    return checkinList.size();

値を取得するためにヒットしているテーブル値は次のとおりです。

| | ID | 日付 |fbuid | 数 |

| | 1 |2012-12-04 18:41:34 | 1111 | 16 |

| | 2 |2012-12-04 18:41:34 | 1111 | 2 |

今日から 7 日前までの行数が必要です。しかし、値が 2 ではなく 0 になっています。

何が悪いのか分からないので教えてください!

4

1 に答える 1

0

私は自分の間違いに気付きました.... between のパラメータの順序が間違っていました...

Criteria criteria = session.createCriteria(Checkin.class)
            .add(Restrictions.like("fbuid", id))
            .add(Restrictions.between("date", c7DaysAgo.getTime(),today.getTime())); 
于 2012-12-11T17:36:20.120 に答える