0

我正在使用 Hibernate 3.5.6 和 JPA 2。

这是我的代码:

  public List<Route> searchRoutesEndingAt(GeoLocation destinationLocation,
        int destinationRangeInMeters, RouteUserPref routeUserPref) {
    Query query = entityManager.createNamedQuery("searchRoutesEndingAt");
    query.setParameter("lat1", destinationLocation.getLatitude());
    query.setParameter("lng1", destinationLocation.getLongitude());
    query.setParameter("destinationRangeInMeters", destinationRangeInMeters);
    try {
        return query.getResultList();
    } catch (NoResultException ex) {
        return null;
    }
}

在上面的代码中,我想根据具有各种属性的 routeUserPref 过滤结果集。

4

2 回答 2

0

您可以使用 Criteria API 尝试以下代码

Criteria criteria = session.createCriteria(RouteUserPref.class).add(routeUserPref);
return criteria.list();
于 2013-01-29T06:27:18.140 回答
0

您将无法使用 EntityManager afaik 执行此操作,因为它不包含在标准中。

但是我认为所有供应商都实现了它,对你来说它将是这样的:

休眠

并使用 Hibernate 的 Criteria API:

// get the native hibernate session
Session session = (Session) getEntityManager().getDelegate();
// create an example from our customer, exclude all zero valued numeric properties 
Example customerExample = Example.create(customer).excludeZeroes();
// create criteria based on the customer example
Criteria criteria = session.createCriteria(Customer.class).add(customerExample);
// perform the query
criteria.list();

摘自:

JPA - FindByExample

顺便说一句,他来自 openjpa 的例子是不完整的。如果您想要更好的版本,请在评论中联系我。

于 2013-01-29T15:57:04.443 回答