0

我偶然发现了这个标准示例

http://wiki.eclipse.org/EclipseLink/Examples/JPA/2.0/Criteria

EntityManager em = getEntityManager();
CriteriaBuilder qb = em.getCriteriaBuilder();
CriteriaQuery<Employee> query = qb.createQuery(Employee.class);
Root<Employee> employee = query.from(Employee.class);
query.where(qb.equal(employee.get("firstName"), "Bob"));
List<Employee> result = em.createQuery(query).getResultList();
...

我的问题是,无论如何我可以以编译时的方式指定字段名称(firstName)吗?

4

1 回答 1

0

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

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

以动态方式使用它应该是该 API 的重点。

于 2013-08-11T14:04:38.913 回答