gpt4 book ai didi

java - JPA getResultList() 为 MySQL 返回 BigInteger 但为 Microsoft SQL Server 返回 Integer

转载 作者:可可西里 更新时间:2023-11-01 06:27:47 27 4
gpt4 key购买 nike

我有以下方法:

Query q = getEntityManager().createNativeQuery("SELECT COUNT(1) FROM table1 WHERE column = :column_id " + "UNION " + "SELECT COUNT(1) FROM table2 WHERE column = :column_id");
q.setParameter("column_id", column_id);

当我想获取计数列表(这将是 2 行)时,我执行此操作:

List<BigInteger> counts = (List<BigInteger>) q.getResultList();

这在 MySQL 中运行良好。但是只要我连接到 MS SQL 服务器,我就会得到一个整数对象列表:

List<Integer>

知道为什么会有差异吗?

最佳答案

JPA 定义了 JPQL 查询的返回类型,但对于 native SQL 查询,您可以得到数据库返回的任何内容。这就是原生 SQL 查询的意义所在。

将您的代码更改为数字,

List<Number> counts = (List<Number>) q.getResultList();
long count = counts.get(0).longValue();

关于java - JPA getResultList() 为 MySQL 返回 BigInteger 但为 Microsoft SQL Server 返回 Integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10830323/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com