我正在尝试使用JPA 2编写一次查询。

Integer zipCode = 50000;
CriteriaBuilder builder = getEntityManager().getCriteriaBuilder();
CriteriaQuery<Territory> query = builder.createQuery(Territory.class);
Metamodel m = getEntityManager().getMetamodel();

Root<Territory> root = query.from(Territory.class);

// zipCode between startZipCodeRange and endZipCodeRange
Predicate condition = builder.between(zipCode , root.get(Territory_.startZipCodeRange), root.get(Territory_.endZipCodeRange));


最后一行不能编译,因为zipCode的类型不是Expression。
是否可以将zipCode转换为Expression?如果是这样,我该怎么做。

最佳答案

您可以使用
如果Territory确实具有邮政编码属性,则将root.get(Territory_.zipcode)作为函数之间的第一个参数。

有关更多详细信息,请参见此答案的评论。

10-08 04:10