2011-07-21 31 views
0

我有一個函數返回一個ArrayList < String>,該列表包含使用JPA從數據庫中檢索的元素,我的問題是我無法理解輸出的格式!無法理解請求的結果JPA

的功能是:

public ArrayList<String> getMyListEnvironment() 
{ 

    ArrayList<String> env=new ArrayList<String>(); 
    try{ 
     EntityTransaction entr=em.getTransaction(); 
     entr.begin(); 

     javax.persistence.Query multipleSelect= em.createQuery("SELECT h.hEnv FROM HPe h WHERE h.hPePK.pePlatform = :w ").setParameter("w", "platf1"); 
    List s = new LinkedList(); 
    s= multipleSelect.getResultList(); 
    env = new ArrayList(s); 

     entr.commit(); 

return env; 
     } 
     catch (Exception e) 
     { 
     System.out.println(e.getMessage()); 
     System.out.println("error"); 
     } 
     finally { 
     em.close(); 
    } 

    return env; 
} 

輸出(結果):

[DTOMonito.HEnv[ envUrl=http://10.55.99.5:1055 ], DTOMonito.HEnv[ envUrl=http://10.55.99.99:8090 ]] 
+1

你的列表看上去像是含有2個DTOMonito對象保存一行代碼(和一個LinkedList分配)。他們每個人都有一個envUrl。你在期待什麼? – Cygnusx1

+0

@ Cygnusx1,我在等待一個像這樣的列表:[envUrl = http://10.55.99.5:1055,envUrl = http://10.55.99.99:8090] – rym

+0

BD中表格的名稱是什麼?什麼是DTOMonito對象?它是映射到數據庫表的對象的名稱嗎? – Cygnusx1

回答

1

該查詢返回的發現爲在HPe實體領域的hEnv列表(好像這些縮寫這些實體造成的困惑比好 - 更好的辦法是對這些類型的事物使用描述性名稱)。

HPe.hEnv a String?也許你的輸出很混亂,因爲有人在這個字段中存儲格式化的字符串。沒有看到你的代碼,這是很難破譯的。

順便說一下,這種方法是有點浪費創建dead stores。是絕對的寫這樣的事情沒有一點:

List s = new LinkedList(); 
s= multipleSelect.getResultList(); 

你可以僅通過寫

List s = multipleSelect.getResultList();