2012-01-13 119 views
0

我不是很在Hibernate中熟悉的延遲加載,並有以下查詢:冬眠收集

考慮兩類:

public class Ticket{ 

    private List<Attachement> attachmentList=new ArrayList<Attachment>(); 
    ... 
} 

public class Attachment{ 
    private String fileName; 
    private bytes[] fileData; 
} 

考慮這樣一個場景:

用戶打開一票看到它的細節。隨着機票的細節清單所有相關的附件也將出現(我的意思是隻有附件的名稱)。用戶將點擊一個文件名來下載該附件。

雖然顯示故障單的詳細信息,但我不想獲取相關附件數據,直到用戶單擊其名稱下載爲止。 (我要秀自己的名稱僅

懶加載,附着物的負載可以推遲,但如何獲取它們的文件名(」 文件名‘類附件的屬性)早期只,但不是’FILEDATA'。

在此先感謝。

回答

1

您需要編寫自定義查詢來加載附件的名稱。在你的應用程序中,你應該擁有某種TicketService,並在其上使用loadTicket方法。在該方法中,您應該加載票證(並且僅加載票證),然後加載附加到票證的附件的名稱。

將數據返回到UI。當用戶點擊附件名稱時,您可以加載完整的附件。

+0

Thanks hvgotcodes! – 2012-01-14 04:08:29

1

如果沒有明確的查詢,使用簡單的對象加載將會很困難。我會建議創建自定義finder方法(可能使用本機sql查詢)。首先獲取ID和文件名,顯示它們,當用戶單擊文件名時,您有ID,從中獲取附件。

+0

謝謝Santosh! – 2012-01-14 04:05:21