我正在尝试在 PHP & Co 中做一些简单的事情:
选择 COUNT(x) 作为 numItems,AVG(y) 作为平均值,... FROM Z
在 PHP 中,我会得到一个像 [{ numItems: 0,average: 0 }] 这样的简单数组,我可以像这样使用它:
echo "Number of Items: " . $result[0]['numItems'];
通常在 JPQL 中,您只查询单个对象或单个列并获取列表类型,例如List<SomeEntity>
or List<Long>
。但是,当查询多列时,您会得到什么?
你得到一个Object[]
(or a List<Object[]>
)。来自该部分4.8.1 SELECT 子句的结果类型JPA 1.0 规范:
SELECT 子句的结果类型
由结果类型定义
这选择表达式包含在
它。当多个选择表达式用于 SELECT 子句中,
查询结果的类型Object[]
,以及这个中的元素
结果对应于
它们的规格顺序
SELECT 子句和 in 类型为
每个的结果类型选择表达式.
如果需要强类型,可以在 SELECT 子句中使用构造函数表达式。来自该部分4.8.2 SELECT 子句中的构造函数表达式:
构造函数可以用在
SELECT 列表返回一个或多个 Java
实例。指定的类是不是
必须是一个实体或
映射到数据库。这
构造函数名称必须完整
合格的。
如果指定了实体类名称
在 SELECT NEW 子句中,
结果实体实例位于
新状态。
SELECT NEW com.acme.example.CustomerDetails(c.id, c.status, o.count)
FROM Customer c JOIN c.orders o
WHERE o.count > 100
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)