Dre*_*mer 2 ejb jpa jpql jakarta-ee
JPQL 使这种更改非常容易:
Select o from Orders as o where....
Select o.id from Orders as o where....
Run Code Online (Sandbox Code Playgroud)
但在标准查询中:
CriteriaBuilder builder = kem.getCriteriaBuilder();
CriteriaQuery<Orders> query = builder.createQuery(Orders.class);
Root<Order> orders= query.from(Orders.class);
query.select(orders);
....
Run Code Online (Sandbox Code Playgroud)
看起来选择项是由 builder.createQuery(Order.class) 定义的,没有任何灵活性。
我知道我们可以使用 Tuple.class,但除了喜欢之外,还有什么更好的方法可以从复杂的查询中获得额外的 id(只有一个字段)?没有这样的特征标准查询变得非常缺乏灵活性。
在JPA元模型API可以用于此目的。
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<Long> query = builder.createQuery(String.class);
Root<Order> root = query.from(Orders.class);
query.select(root.get(Orders_.id));
Run Code Online (Sandbox Code Playgroud)
这里,Orders_是Orders实体的元模型类。
| 归档时间: |
|
| 查看次数: |
7877 次 |
| 最近记录: |