JPA 2.0中的动态类型安全查询 - 编程入门网
方面是它们没有内部值。值绑定到可执行查询上下文中的参数。因此,可以合法地从相同的 CriteriaQuery 创建两个独立可执行的查询,并为这些可执行查询的相同参数绑定两个整数值。
JPA 2.0中的动态类型安全查询(10)时间:2011-02-03 IBM Pinaki Poddar预测结果 您已经看到 CriteriaQuery 在执行时返回的结果已经在 QueryBuilder 构造 CriteriaQuery 时指定。查询的结果被指定为一个或多个预测条件。可以通过两种方式之一在 CriteriaQuery 接口上指定预测条件:
最简单并且最常用的预测条件是查询候选类。它可以是隐式的,如清单 11 所示: 清单 11. CriteriaQuery 默认选择的候选区段
在 清单 11 中,来自 Account 的查询没有显式地指定它的选择条件,并且和显式地选择的候选类一样。清单 12 显示了一个使用显式选择条件的查询: 清单 12. 使用单个显式选择条件的 CriteriaQuery
如果查询的预测结果不是候选持久化实体本身,那么可以通过其他几个构造方法来生成查询的结果。这些构造方法包含在 QueryBuilder 接口中,如清单 13 所示: 清单 13. 生成查询结果的方法
清单 13 中的方法构建了一个由其他几个可选择的表达式组成的预测条件。construct() 方法创建给定类参数的一个实例,并使用来自输入选择条件的值调用一个构造函数。例如,如果 CustomerDetails — 一个非持久化实体 — 有一个接受 String 和 int 参数的构造方法,那么 CriteriaQuery 可以通过从选择的 Customer — 一个持久化实体 — 实例的名称和年龄创建实例,从而返回 CustomerDetails 作为它的结果,如清单 14 所示: 清单 14. 通过 construct() 将查询结果包放入类的实例
可以将多个预测条件合并在一起,以组成一个表示 Object[] 或 Tuple 的复合条件。清单 15 显示了如何将结果包装到 Object[] 中: 清单 15. 将结果包装到 Object[]
这个查询返回一个结果列表,它的每个元素都是一个长度为 2 的 Object[],第 0 个数组元素为 Customer 的名称,第 1 个数组元素为 Customer 的年龄。 Tuple 是一个表示一行数据的 JPA 定义接 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |