Java 编译时方式构建标准API查询生成器(EclipseLink)

Java 编译时方式构建标准API查询生成器(EclipseLink),java,jpa-2.0,criteria,Java,Jpa 2.0,Criteria,我偶然发现了这个例子 EntityManager em=getEntityManager(); CriteriaBuilder qb=em.getCriteriaBuilder(); CriteriaQuery=qb.createQuery(Employee.class); Root employee=query.from(employee.class); 其中(qb.equal(employee.get(“firstName”),“Bob”); List result=em.createQu

我偶然发现了这个例子

EntityManager em=getEntityManager();
CriteriaBuilder qb=em.getCriteriaBuilder();
CriteriaQuery=qb.createQuery(Employee.class);
Root employee=query.from(employee.class);
其中(qb.equal(employee.get(“firstName”),“Bob”);
List result=em.createQuery(query.getResultList();
...

我的问题是,我是否可以在编译时指定字段名(firstName)?

您是否尝试将字段名作为变量传递

String filterField = "firstName";
query.where(qb.equal(employee.get(filterField), "Bob"));
以动态方式使用它应该是该api的要点

String filterField = "firstName";
query.where(qb.equal(employee.get(filterField), "Bob"));