HQL取滿足條件最新一條記錄(max()函式的使用)
阿新 • • 發佈:2019-02-08
專案中要查詢滿足條件的最新一條記錄,用的是Hibernate框架,因此要使用HQL語句:
from DeviceUseRecord where DeviceUseRecord.id =(select max(DeviceUseRecord.id) from DeviceUseRecord where DeviceUseRecord.deviceNo='xxxxxx')";
結果執行時出錯查不出結果,網上查詢資料才知道,運用HQL的max等函式要定義別名,
然後HQL語句改為:
from DeviceUseRecord where DeviceUseRecord.id =(select max(model.id) from DeviceUseRecord as model where mode.deviceNo='xxxxxx')";
結果執行時還是出錯查不出結果,後來將HQL語句改為:
from DeviceUseRecord as dur where dur.id =(select max(model.id) from DeviceUseRecord as model where mode.deviceNo='xxxxxx')";
之後,就可以正確執行了。
不知道為何子句和父局都要定義別名,不過問題解決了。