У меня такой запрос
SET @rownum := 0;
SELECT rank, id, point FROM
(
SELECT @rownum := @rownum + 1 AS rank, id, point FROM user ORDER BY point DESC
) AS result
WHERE id = 0;
Поэтому я использую EntityManager#createNativeQuery
для выполнения этого запроса.
Object temp = em.createNativeQuery(sql).getSingleResult(); //sql is the above SQL query
Так что теперь объект temp
содержит информацию о rank
, id
и point
. Обратите внимание, что rank
не является атрибутом внутри моей сущности, rank
вычисляется при выполнении запроса -> не может привести этот объект к моей сущности.
Так, как я могу получить значение rank
?
EDIT
Вот ответ на то, что я ищу. Так что вместо этого
Object temp = em.createNativeQuery(sql).getSingleResult();
Сделай это
Object[] temp = (Object [])em.createNativeQuery(sql).getSingleResult();
Так как я хочу узнать значение rank
, я бы сделал это
Long rank = (Long) temp[0];