Gre*_*reg 22 java jpa criteria-api
我正在尝试编写一个不同的条件查询,使用:
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<RuleVar> query = builder.createQuery(RuleVar.class);
Root<RuleVar> ruleVariableRoot = query.from(RuleVar.class);
query.select(ruleVariableRoot.get("foo").<String>get("foo")).distinct(true);
Run Code Online (Sandbox Code Playgroud)
基于CriteriaQuery.select()的javadoc中的示例
CriteriaQuery<String> q = cb.createQuery(String.class);
Root<Order> order = q.from(Order.class);
q.select(order.get("shippingAddress").<String>get("state"));
Run Code Online (Sandbox Code Playgroud)
但是,这给了我一个错误:
The method select(Selection<? extends RuleVar>) in the type CriteriaQuery<RuleVar> is not applicable for the arguments (Path<String>)
Run Code Online (Sandbox Code Playgroud)
有人可以指出我做错了什么吗?或者如何从Path获取Selection对象?
Gre*_*reg 57
我知道了.问题是我的CriteraQuery需要是String类型.这有效:
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<String> query = builder.createQuery(String.class);
Root<RuleVar> ruleVariableRoot = query.from(RuleVar.class);
query.select(ruleVariableRoot.get(RuleVar_.varType)).distinct(true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44811 次 |
| 最近记录: |