我正在使用CriteriaBuilder和CriteriaQuery構建我的查詢到數據庫,但是我遇到了一個我不知道如何解決的問題,因爲我對這個稱爲JPA的整個考驗非常新穎。Java持久性標準; Cast Expression <Timestamp> to Expression <Long>?
在Java中,我有一個名爲時間戳一個名爲報告類屬性,它被設置爲相應@TemporalType相同。 我也有一個類叫加盟它有一個列表報告對象。
在我的詢問,我想獲取所有沒有在最後Affiliate.maxSilenceMinutes一個報告的加盟對象。
我的問題:
- 是否有標準化的JPA任何方式修改日期?像CriteriaBuilder.subtractMilliseconds(表達式<時間戳>,長)的種類?
- 如果沒有,有沒有辦法投表達<時間戳>到表達<朗>,這樣我可以在currentTimestamp字面來得到一個CriteriaBuilder.lessThanOrEqualTo最小值(greatestReportTimestampMs減, minimumAllowedMs)?
我知道這可能會感覺像一個令人困惑的問題,但主要部分很簡單:是否有可能去表達<時間戳>到表達<朗>?如果我嘗試使用.as(Long.class)方法,但它在大多數DB中應該是默認的基礎數據類型,它會引發異常?
希望你們能幫助,因爲我覺得自己有種被卡住:)