我需要在我的數據庫中獲得最新插入的'產品'。 我使用JPA(EclipseLink的),要做到這一點,是這樣的:如何使用JPA獲取最新的插入值?
public List<Product> search(String name){
// return the lastest results with the maximum of 100 values
}
我怎麼能這樣做? 謝謝。
我需要在我的數據庫中獲得最新插入的'產品'。 我使用JPA(EclipseLink的),要做到這一點,是這樣的:如何使用JPA獲取最新的插入值?
public List<Product> search(String name){
// return the lastest results with the maximum of 100 values
}
我怎麼能這樣做? 謝謝。
搜索具有給定名稱的產品,按照ID(如果使用序列號作爲ID)按降序排列的插入日期(必須出現在產品實體中的列)對結果進行排序,然後調用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();
如果您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();
}
雖然該解決方案是正確的,代碼片段看起來像JDO,而不是JPA代碼。 –
哈哈,是的,它是JDO。甚至沒有注意到。你的解決方案也是正確的,並且是JPA。 :) –
感謝隊友,它真的清楚的東西拿出來給我=] –