我是JPA的新手,但必须在该技术中实施我的项目
我要做的是通过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);
代码看起来相当复杂,导致复杂的数据库架构。有人能告诉我如何解决我的问题吗?或者也许只有一个解决方案适用于(...)?
答案 0 :(得分:2)
如果我理解你的问题,你需要一个“进入”条件:
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);