Criteria API 全面解析
1. 函数表达式
函数表达式是 Criteria API 中与 JP QL 里的 FUNCTION 关键字相对应的功能。它允许将原生 SQL 存储函数与其他 Criteria API 表达式混合使用,适用于需要少量原生 SQL 来满足特定需求,但又不想将整个查询转换为 SQL 的情况。
函数表达式通过 CriteriaBuilder 接口的 function() 方法创建,该方法需要数据库函数名、预期返回类型以及可选的传递给函数的参数列表作为参数。返回类型为 Expression ,可在查询的许多其他地方使用。
示例代码如下:
CriteriaQuery<String> c = cb.createQuery(String.class);
Root<Department> dept = c.from(Department.class);
c.select(cb.function("initcap", String.class, dept.get("name")));
需要注意的是,开发者在使用函数表达式时要谨慎,因为它虽然看起来像普通的可移植 JPA 查询,但实际上与特定数据库的行为相关。
2. 类型向下转换
JPA 2.1 引入了在通过 JP QL 中的 TREAT 操作查询实体继承层次结构时进行类型向下转换的支持。
超级会员免费看
订阅专栏 解锁全文
5120

被折叠的 条评论
为什么被折叠?



