【发布时间】:2013-07-09 10:55:10
【问题描述】:
我正在 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 有关系。
【问题讨论】: