1

これは非常に単純に聞こえますが、頭を包むことはできません。

DB に 2 つのフィールドがあります。availableFromDate と availableToDate。

ユーザーは、特定の範囲内で利用可能なすべてのエンティティを見つけるために検索を行っています。したがって、私のアクションは 2 つの日付を受け取ります。

searchFromDate と searchToDate。

私がする必要があるのは、ユーザーが指定した期間全体で利用可能なすべてのエンティティを返すことだけです。

できれば基準を使用してください。

誰?

4

1 に答える 1

0

あなたの質問が正しく理解できた場合、つまり、イベントの利用可能性は検索の日付範囲内に完全に収まる必要があるということです。要約すると、次のようになります。

"availableFromDate.before(availableToDate)" と "searchFromDate.before(searchToDate)" を確認する場合 (この場合はとにかく実行する必要があります)、availableFromDate と availableToDate の両方が検索日付範囲内にある必要があります。

この回答のソリューションを使用して、両方の日付が範囲内にあることを確認できます:休止状態で日付を比較する方法

criteria.add(Restrictions.between("availableFromDate", searchFromDate, searchToDate));
criteria.add(Restrictions.between("availableToDate", searchFromDate, searchToDate));
于 2012-11-12T07:45:11.973 に答える