我不太熟悉 Hibernate,有以下查询:
考虑两个类:
public class Ticket{
private List<Attachement> attachmentList=new ArrayList<Attachment>();
...
}
public class Attachment{
private String fileName;
private bytes[] fileData;
}
考虑一个场景:
用户打开票证以查看其详细信息。与该票证相关的所有附件的票证详细信息列表也会显示(我的意思是仅附件名称)。用户将单击文件名来下载该附件。
在显示票证详细信息时,我不想获取相关附件数据,直到用户单击其文件名进行下载。 (我只想显示他们的名字)
使用延迟加载,可以推迟附件的加载,但如何仅提前获取其文件名(附件类的“fileName”属性),而不是“fileData” .
提前致谢。
最佳答案
您需要编写一个自定义查询来仅加载附件的名称。在您的应用程序中,您应该有某种带有 loadTicket
方法的 TicketService
。在该方法中,您应该加载票证(并且仅加载票证),然后仅加载附加到票证的附件的名称。
将该数据返回到 UI。当用户单击附件名称时,您可以加载完整的附件。
关于java - hibernate延迟加载集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8854653/