首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何为下面给出的查询编写Java CriteriaBuilder

如何为下面给出的查询编写Java CriteriaBuilder
EN

Stack Overflow用户
提问于 2019-06-19 06:27:37
回答 1查看 1.1K关注 0票数 0

如何用Java CriteriaBuilder编写查询?

代码语言:javascript
复制
SELECT c FROM UserTransaction c WHERE  c.status in ('M', 'P') AND
instr(c.idNumber,:idNum) > 0 order by c.userI

注意: idNum是一个变量

请看我开始写的东西。但是我不能编译它。

代码语言:javascript
复制
CriteriaBuilder cb = em.getCriteriaBuilder();
ParameterExpression<String> idnumParameter = cb.parameter(String.class, idNum);
ParameterExpression<Integer> numberParameter = cb.parameter(Integer.class)       

CriteriaQuery<UserTransaction > cq = cb.createQuery(UserTransaction .class);
Root<UsasTransaction> postRoot = cq.from(UserTransaction .class);

Predicate predicateInM    = cb.equal(postRoot.get("status"),"M");
Predicate predicateInP    = cb.equal(postRoot.get("status"),"P");
Predicate predicateStatus = cb.or(predicateInM, predicateInP);

Predicate predicateInstr  = (Predicate) cb.function("INSTR", Boolean.class, postRoot.get("idNumber"), idnumParameter );
Predicate predicateGt     = cb.gt(predicateInstr, 0);
EN

回答 1

Stack Overflow用户

发布于 2019-06-19 20:34:52

代码语言:javascript
复制
                        So I ran the query slightly modified like this:  List<String> statusList = new ArrayList<String>();

statusList.add("R");statusList.add("T");

CriteriaBuilder cb = em.getCriteriaBuilder();ParameterExpression idnumParameter = cb.parameter(String.class,idNum);

CriteriaQuery cq = cb.createQuery(UserTransaction .class);根postRoot = cq.from(UserTransaction .class);

表达式=postRoot.get(“状态”);谓词predicateStatus = expression.in(statusList);

//编辑返回整数表达式expressionInstr = cb.function("INSTR",Integer.class,postRoot.get("idNumber"),idnumParameter );谓词predicateGt = cb.gt(expressionInstr,0);

cq.select(postRoot).where(cb.and(predicateStatus,predicateGt));cq.orderBy(cb.asc(postRoot.get("usasOutRecId")));

UserTransactions = em.createQuery(cq).getResultList();

但我收到这个错误: org.hibernate.QueryException:并非所有命名参数都已设置: param2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56657821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档