2014-09-20 46 views
0

我使用MVC +彈簧+ primefaces,我已經在我的DAO定義如下方法:JPA query.getResultList將只返回我的數據表的1行?

public Pet retrieveAllPet() { 

    Query query = em.createQuery("from Pet"); 



    @SuppressWarnings("unchecked") 
    List<Pet> pets = query.getResultList(); 
    Pet pet = null; 
    for (int i = 0; i < pets.size(); i++){ 
     pet = (Pet) pets.get(i); 
    } 

    return pet; 

現在,當我跑我的應用程序也只會返回我的數據表的最後一排? 上面應該返回整個表還是我的問題在別的地方?

非常感謝。

+1

什麼問題?你返回你給出的列表的最後一個條目。那是故意的? – 2014-09-20 17:05:31

+0

請正確說明您的問題。您想做什麼? – 2014-09-20 17:10:54

回答

2

您正在返回一個存儲在pet變量中的方法中的單個Pet實例。當i達到pets.size() - 1時,此變量將存儲最後一行。

要返回所有行,只需將返回類型更改爲List<Pet>並返回變量pets

public List<Pet> retrieveAllPet() { 

    Query query = em.createQuery("from Pet"); 

    @SuppressWarnings("unchecked") 
    List<Pet> pets = query.getResultList(); 
    return pets; 
}