2011-12-12 66 views
0

我需要在我的數據庫中獲得最新插入的'產品'。 我使用JPA(EclipseLink的),要做到這一點,是這樣的:如何使用JPA獲取最新的插入值?

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

我怎麼能這樣做? 謝謝。

回答

1

搜索具有給定名稱的產品,按照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(); 
+0

感謝隊友,它真的清楚的東西拿出來給我=] –

0

如果您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(); 
} 
+0

雖然該解決方案是正確的,代碼片段看起來像JDO,而不是JPA代碼。 –

+0

哈哈,是的,它是JDO。甚至沒有注意到。你的解決方案也是正確的,並且是JPA。 :) –