Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JPA检索单个值?_Jpa - Fatal编程技术网

使用JPA检索单个值?

使用JPA检索单个值?,jpa,Jpa,JPA是否支持将单个值映射到标量数据类型?例如,要在以下查询中映射NUM SELECT COUNT(*) AS NUM FROM EMPLOYEES 对某个变量 int numerOfEmployees 或者我必须在这种用例中使用JDBC吗?是的,您可以从JPQL查询返回标量类型 long num = ((Number)em.createQuery("select count(e) from Employee e") .getSingleResult(

JPA是否支持将单个值映射到标量数据类型?例如,要在以下查询中映射NUM

SELECT COUNT(*) AS NUM FROM EMPLOYEES
对某个变量

int numerOfEmployees

或者我必须在这种用例中使用JDBC吗?

是的,您可以从JPQL查询返回标量类型

long num = ((Number)em.createQuery("select count(e) from Employee e")
                    .getSingleResult()).longValue();
以及从本机SQL查询:

long num = ((Number)em.createNativeQuery("select count(*) from Employees")
                    .getSingleResult()).longValue();

请注意,在某些情况下,结果类型可能取决于数据库,也就是说,它可能类似于
BigDecimal

Doh,谢谢。从文档中无法理解这一点:[注意,我必须使用对象类型并使用其intValue()使您的示例正常工作。]我更新了解决方案,使用
(Number)…longValue()
,它是
BigInteger
的超级类型,我不确定是否有任何DB/驱动程序在这种情况下不返回子类型
Number
,但原始答案中的
(long)
转换对我来说“从不”起作用。(我还想知道您是否可以指定
Number.class
作为类型映射以确保(Double.class似乎不起作用:)