Jåc*_*cob 1 java jpa eclipselink criteria-api jpa-2.0
我有一个 CriteriaBuilder,我试图在其中获取从 0 到 10 的字符。但是我无法获得所需的输出。
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Emp> cq = cb.createQuery(Emp.class);
Root<Emp> c = cq.from(Emp.class);
cb.substring(c.<String>get("projDesc"), 0, 10);
cq.orderBy(cb.desc(c.get("salary")));
Query query = em.createQuery(cq);
.....
Run Code Online (Sandbox Code Playgroud)
这可能是什么原因?
来自javadoc
创建用于子字符串提取的表达式。从指定位置开始提取给定长度的子字符串。第一个位置是 1。
尝试做 cb.substring(c.<String>get("projDesc"), 1, 10);
我想你忘记选择 Expression<E>
尝试cq.select(cb.substring(c.<String>get("projDesc"), 1, 10))
它会返回List<String>如果您需要返回Emp您可以使用
cb.construct(Emp.class, e.get("prop1"), e.get("prop2"), cb.substring(c.<String>get("projDesc"), 1, 10)));
| 归档时间: |
|
| 查看次数: |
6897 次 |
| 最近记录: |