2017-07-05 75 views
0

我剛剛開始學習JPA 2,並試圖在控制檯中簡單顯示我的表內容。在控制檯中顯示JPA resultList

這是我的方法看起來像:

public static List<Bronie> getListaBroni() { 

    EntityManager em = DatabaseHandler.getEntityManager(); 
    String qString = "SELECT b FROM Bronie b"; 

    TypedQuery<Bronie> q = em.createQuery(qString, Bronie.class); 

    result = q.getResultList(); 

    return result; 

} 

我想在控制檯顯示它,但結果我得到的是:

Hibernate: select bronie0_.id as id1_1_, bronie0_.ilosc as ilosc2_1_, bronie0_.kaliber as kaliber3_1_, bronie0_.model_broni as model_br4_1_ from bronie bronie0_ 
[[email protected]] 

到目前爲止,在只有一個對象數據庫,但我沒有看到爲這個問題提供更多的意見。

我知道我必須以某種方式將表示不同列的部分分開,但我不知道如何。以及如何避免這種顯示屏

[email protected] 

以後?

不知道它是否有幫助,但我會試圖把結果列表放到最後的TableView中,所以我可能需要將每列與對象分開。

回答

0

每當您嘗試打印對象時,都會調用其上的toString()方法。默認實現返回對象類和散列碼。因此,如果您想打印Bronie對象數據,您必須在課堂上使用@OverridetoString()方法。

@Override 
public String toString() { 
    return "Prop1: '" + this.prop1+ "', Prop2: '" + this.prop2+ "'....; 
} 
0

我認爲你的課應該實現可串行化的類。

0

我看到你的問題三個部分:

在你的問題你是顯示該冬眠創建查詢數據庫恢復行的SQL查詢的第一部分。動態表和列名稱很奇怪,但它是一個實現細節。

在問題的第二部分中,您將討論neeed來分隔列。你不必分離任何東西,你的查詢是這樣的:

  • 實體管理器讀取數據庫行
  • 中實例化並映射對象類,並要求
  • 初始化與對象的屬性該行

第三部分中的數據,打印對象:

您顯示的打印結果是默認情況下,類名與虛擬地址機。正如其他人所說,您可以重寫toString方法來更改默認行爲,並按默認打印方式打印。請考慮默認打印內部內容,併爲最終用戶視圖或打印創建自定義方法。