Как получить последние вставленные значения с JPA? - PullRequest
0 голосов
/ 13 декабря 2011

Мне нужно получить последний продукт 'product' в моей базе данных.Я использую JPA (EclipseLink), чтобы сделать это, что-то вроде:

public List<Product> search(String name){
  // return the lastest results with the maximum of 100 values
}

Как я могу это сделать?Спасибо.

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Поиск продуктов с заданным именем, упорядочение результатов по дате вставки (столбец, который должен присутствовать в сущности «Продукт») по идентификатору (если в качестве идентификатора используется порядковый номер), в порядке убывания и вызов setMaxResults(100) в запросе, чтобы ограничить его до 100 результатов:

TypedQuery<Product> q = 
    em.createQuery("select p from Product p"
                   + " where p.name = :name"
                   + " order by p.insertionDate desc", Product.class);
q.setParameter("name", name);
q.setMaxResults(100);
return q.getResultList();
0 голосов
/ 13 декабря 2011

Если у вашего Product класса есть поле "id", которое автоматически увеличивается, вы можете сделать это. Или, если у класса есть поле createDate, вы можете также упорядочить его.

Query q = pm.newQuery(Product.class);
q.setOrdering("id desc");
//q.setOrdering("createDate desc"); //If you have a createDate field
q.setRange(0, 100);

try {
    products = (List<Product>)q.execute();
}
finally {
    q.closeAll();
}
...