說,我有一個具有操作歷史的實體作爲集合。我想根據最近一次操作的日期對實體進行排序(這是歷史的第一個元素)。我如何創建一個Hibernate標準,通過集合的某些屬性來訂購
我願意做這樣的事情:
criteria.addOrder(Order("history[0].date"))
這可能嗎?
說,我有一個具有操作歷史的實體作爲集合。我想根據最近一次操作的日期對實體進行排序(這是歷史的第一個元素)。我如何創建一個Hibernate標準,通過集合的某些屬性來訂購
我願意做這樣的事情:
criteria.addOrder(Order("history[0].date"))
這可能嗎?
據我所知,Criteria只支持按映射屬性進行排序,所以也許將最後一次修改的日期映射爲計算屬性(使用formula attribute of the property tag)會起到一定作用。
當然,這是醜陋的,但因爲沒有人發佈了迄今爲止更好的辦法...
編輯:查詢也可能不會執行太清楚,或許這將作爲冗餘列到你的實體表一個更好的選擇。
根本不可能。
您的歷史記錄數據位於另一個表中,並且通過此關係排序,您將需要更復雜的條件,至少涉及某種類型的連接到另一個表,並且我懷疑可能是別名。
發佈你的類的映射,我們可能會給出一個提示如何做到這一點。