如何在条件查询中传递参数列表,jpa?
我是JPA新手,但我必须用这种技术来实现我的项目 我试图通过如何在条件查询中传递参数列表,jpa?,jpa,criteria-api,Jpa,Criteria Api,我是JPA新手,但我必须用这种技术来实现我的项目 我试图通过CriteriaQuery一些数据库查询来构建,但不知道如何将参数列表传递给下面的代码: CriteriaBuilder qb = em.getCriteriaBuilder(); CriteriaQuery<MyClass> c = qb .createQuery(MyClass.class); Root<MyClassPK> p = c .fro
CriteriaQuery
一些数据库查询来构建,但不知道如何将参数列表传递给下面的代码:
CriteriaBuilder qb = em.getCriteriaBuilder();
CriteriaQuery<MyClass> c = qb
.createQuery(MyClass.class);
Root<MyClassPK> p = c
.from(MyClass.class);
c.where(qb.equal(qb.trim((p.<MyClass> get("id")).<String> get("Name")),
HERE LIST OF ARGS HOW TO PASS ?? ));
TypedQuery<MyClass> q = em.createQuery(c);
CriteriaBuilder qb=em.getCriteriaBuilder();
标准查询c=qb
.createQuery(MyClass.class);
根p=c
.from(MyClass.class);
c、 式中(qb.equal(qb.trim((p.get(“id”)).get(“Name”))),
这里是如何通过的参数列表??);
TypedQuery q=em.createQuery(c);
由于复杂的数据库架构,代码看起来相当复杂。有人能告诉我如何解决我的问题吗?或者可能只有一个解决方案是针对(…) 如果我很理解你的问题,你需要一个“处于”状态:
CriteriaBuilder qb = em.getCriteriaBuilder();
CriteriaQuery<MyClass> c = qb.createQuery(MyClass.class);
Root<MyClassPK> p = c.from(MyClass.class);
// c.where(qb.equal(qb.trim((p.<MyClass> get("id")).<String> get("Name")), HERE LIST OF ARGS HOW TO PASS ?? ));
List<String> names = new ArrayList<String>();
names.add("name1");
names.add("name2");
names.add("name3");
c.where(qb.trim((p.<MyClass> get("id")).<String> get("Name")).in(names));
TypedQuery<MyClass> q = em.createQuery(c);
CriteriaBuilder qb=em.getCriteriaBuilder();
CriteriaQuery c=qb.createQuery(MyClass.class);
根p=c.from(MyClass.class);
//c.where(qb.equal(qb.trim((p.get(“id”)).get(“Name”)),这里是如何通过的参数列表??);
列表名称=新的ArrayList();
名称。添加(“名称1”);
名称。添加(“名称2”);
名称。添加(“名称3”);
c、 其中(qb.trim((p.get(“id”)).get(“Name”)).in(Name));
TypedQuery q=em.createQuery(c);
谢谢您的回答!周末后我会试着做这份工作,很幸运,你的小费不管用。我的eclipse下划线修剪方法说:“请在文件中重命名”。。。谢谢你关心我的朋友,但结果还是出乎我的意料。我的意思是,我需要将修剪与arg列表相等,所以它就像qb.equal(qb.trim(…),这里是arg列表)在我的情况下,你的想法不起作用:(