0
我想在WHERE子句和ORDER BY表達式中使用計算值。在普通的SQL它看起來像帶有計算值的JPQL查詢?
SELECT some, colums, (some arbitrary math) AS calc_value FROM table WHERE calc_value <= ? ORDER BY calc_value
如果我嘗試在JPQL
entitymanager.createQuery("SELECT e, (some arbitrary math) AS calc_value FROM Entity e WHERE calc_value <= :param ORDER BY calc_value", Entity.class);
失敗。很明顯,因爲查詢的返回是Entity和calc_value的元組(即Double)。
是否有一種方法可以使用強類型化返回值(即Entity.class,因爲計算出的值無關緊要)將其置入一個查詢中。
嘗試創建一個DTO並返回它:http://stackoverflow.com/questions/2355728/JPQL創建新對象,在選語句,避免或 - 擁抱 –