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

標準に含まれていないため、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 に答える
0

Criteria API で次のコードを試すことができます

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