我在 JPA 2.0 中执行以下 SQL 来检索给定行的行号。
SELECT
rownum
FROM
(SELECT
@rownum:=@rownum+1 AS rownum,
tbl.zone_id
FROM
zone_table tbl,
(SELECT
@rownum:=0)t
ORDER BY
tbl.zone_id DESC)t
WHERE
zone_id=?
我在 JPA 中使用以下方法来执行这个原生 SQL 查询。
Object object = entityManager.createNativeQuery("aboveQuery")
.setParameter("zone_id", id).getSingleResult();
object.toString()
返回喜欢
10.0
11.0
12.0
13.0
依此类推id
。因此,该值无法解析为java.lang.Long
. 我希望它显示一个没有小数点的值。为什么这个查询会产生这个结果。它与 MySQL 而不是 JPA 更相关。
我正在使用 MySQL 5.6.11
编辑:
我无法验证它在 MySQL 中返回的数据类型,因为它在 MySQL 中返回没有小数点的结果(此处考虑的主键类型为BIGINT
)。
当我在 PHP 中尝试这个查询时,它也产生了没有小数点的结果。所以,我可能认为它与 JPA 有关系。