假设我的数据库中有这样的东西(抽象)
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?)或者我是否需要获取所有条目然后使用某种方法进行过滤?