我正在尝试做一些在PHP&Co中很容易的事情:SELECT COUNT(x)作为numItems,AVG(y)作为平均值,... FROM Z
在PHP中,我会得到一个像[{numItems:0,average:0}]这样的简单数组,我可以这样使用:
echo "Number of Items: " . $result[0]['numItems'];
Run Code Online (Sandbox Code Playgroud)
通常在JPQL中,您只查询单个对象或单个列并获取Lists类型,例如List<SomeEntity>
或List<Long>
.但是在查询多个列时你会得到什么?
你得到一个Object[]
(或一个List<Object[]>
).从4.8.1 JPA 1.0规范的SELECT子句的结果类型部分:
SELECT子句的结果类型由其中包含的select_expressions的结果类型定义.当 在SELECT子句中使用多个select_expressions时,查询的结果是类型
Object[]
,并且此结果中的元素按照SELECT子句中的规范顺序和每个select_expressions的结果类型的类型对应. .
如果要进行强类型输入,可以在SELECT子句中使用构造函数表达式.从SELECT子句中的4.8.2构造函数表达式一节:
可以在SELECT列表中使用构造函数来返回一个或多个Java实例.指定的类不需要是实体或映射到数据库.构造函数名称必须是完全限定的.
如果在SELECT NEW子句中指定了实体类名,则生成的实体实例处于新状态.
Run Code Online (Sandbox Code Playgroud)SELECT NEW com.acme.example.CustomerDetails(c.id, c.status, o.count) FROM Customer c JOIN c.orders o WHERE o.count > 100
归档时间: |
|
查看次数: |
2571 次 |
最近记录: |