0
我有一個班級具有出生日期變量的用戶,並且我正在嘗試編寫一個標準查詢來查找所有超過X歲且小於Y的用戶,其中X和Y是兩個整數,出生日期是日期。休眠條件從出生當天的年齡範圍搜索
我使用這個表達式解決了這個問題,但我想避免使用Expression,因爲我猜它只能用於MySQL。
.createCriteria(User.class)
.add(Expression
.sql("DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()) - TO_DAYS(BIRTHDATE)) , '%Y') >= " + lowAge))
.add(Expression
.sql("DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()) - TO_DAYS(BIRTHDATE)) , '%Y') <= " + highAge))
任何想法?
我編輯我的第一篇文章。我不能,因爲lowAge是一個整數,生日是一個日期。 – LorenzoR
難道你不能將年齡轉換爲生日嗎?應該像'Calendar.getInstance()。add(Calendar.YEAR,-1 * lowAge).getTime()'或其他東西一樣簡單。或者在數據庫中沒有進行計算時出現語言環境問題? –