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创建新对象,在选语句,避免或 - 拥抱 –