簡體   English   中英

java標准日期比較

[英]java criteria Date comparison

我正在使用條件對象過濾搜索。 但該過濾器不適用於日期。 我這樣做例如:

criteria.add(Restrictions.and(
            Restrictions.like("serialNumber", device.getSerialNumber()),
            Restrictions.like("installDate", device.getInstallDate()), // a date
            Restrictions.like("ipAdress", device.getIpAdress())));

然后我做了這個:

else if (device.getInstallDate() != null) {
        criteria.add(Restrictions.like("installDate", device.getInstallDate()));
    }

您有按日期過濾的想法嗎?

您的代碼/方法看起來不錯。 您可能希望啟用SQL日志記錄,以查看將哪些語句准確發送到DB,以及將哪些值綁定到語句參數。 這應該可以幫助您找出問題所在(問題可能只是一些細節,例如帶/不帶時間部分的日期或類似的內容)。

也可以看看:

Hibernate顯示真實的SQL

要搜索確切的日期,我使用:

criteria.add(Restrictions.eq("installDate", device.getInstallDate()));

還請注意,基礎數據庫根據相應的SQL類型對日期和時間戳進行不同的處理。 聲明為日期的字段將不包括小時/分鍾/等。 如果希望比較日期和時間,請確保在Hibernate聲明中使用timestamp。

顯示SQL語句的最快方法是在Hibernate配置中將show_sql屬性設置為true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM