1. 程式人生 > >HQL取滿足條件最新一條記錄(max()函式的使用)

HQL取滿足條件最新一條記錄(max()函式的使用)

專案中要查詢滿足條件的最新一條記錄,用的是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')";

之後,就可以正確執行了。

不知道為何子句和父局都要定義別名,不過問題解決了。