0

データベースにこのようなものがあるとしましょう(要約)

MyTable {
  Long ID Primary Key NOT NULL,
  Date ValidFrom Primary Key NOT NULL,
  Date ValidTo
}

基本的に、ID と ValidFrom に複合主キーを持つエンティティです。現在、2012-09-01 -> 2012-09-30 などの日付範囲があります。

私の質問は次のとおりです: ID が繰り返されるが、ValidFrom キーが異なるスマートな休止状態クエリを作成して、最新の日付でこれを返すことはできますか?

たとえば、データ:

Row 1 {
  Long ID = 1,
  Date ValidFrom 2012-09-01,
  Date ValidTo 2012-09-15 
}

Row2 {
  Long ID = 2,
  Date ValidFrom 2012-09-01,
  Date ValidTo 2012-09-15 
}

Row3 {
  Long ID = 1,
  Date ValidFrom 2012-09-16,
  Date ValidTo null
}

指定された日付 (2012-09-01 -> 2012-09-30) の間の行を選択すると、Row2 と Row3 のみが返されます (Row1 と Row3 は同じ ID を持っているため、最新のものになります)。

クエリ(基準API?)はありますか?それとも、すべてのエントリを取得してから何らかの方法でフィルタリングする必要がありますか?

4

1 に答える 1

0

行をリクエストしてから、最新のものを取得して終了しました

Collections.max(...)

日付コンパレータ付き

于 2012-09-13T10:59:23.397 に答える