我有一個Java Web應用程序,使用JPA存儲,並遵循MVC模式。在許多方法中,我必須返回一個List<Product>
,我應該按其名稱命名。哪裏包括排序邏輯更好?哪裏更有效率或方便地對數據進行排序?
在這樣一個控制器方法,在Query
本身:
public List<Product> obtainProductList()
{
Query query = em.createQuery("SELECT g FROM Product g ORDER BY g.name");
List<Product> ret = query.getResultList();
if (ret == null)
{
return new ArrayList<>();
}
else
{
return ret;
}
}
或者,也許在數據檢索網頁本身?:
public List<Product> getProducts()
{
products = controller.obtainProductList();
//Sort the list by comparators, for example;
return this.products;
}
的時刻Manager類目前,我正在通過第一種方法來完成這項工作,但我接受了新的方法。
在查詢中使用它。數據庫針對此類操作進行了優化 – Mirco
在服務器端進行排序不是一種選擇,尤其是當您需要對來自巨大聯接的標準進行排序時。讓數據庫完成這項工作,JPA打算讓你這樣做。 –
除非你知道數據庫沒有特別的數據,否則將它作爲@ verbose-mode說的留在數據庫中。 – Cruncher