我不熟悉Hibernate并且有以下查询:
考虑两个类:
public class Ticket{
private List<Attachement> attachmentList=new ArrayList<Attachment>();
...
}
public class Attachment{
private String fileName;
private bytes[] fileData;
}
考虑一个场景:
用户打开票证以查看其详细信息。随着票证详细信息,与该票证相关的所有附件的列表也将显示(我的意思是仅附件的名称)。用户将单击文件名以下载该附件。
在显示故障单的详细信息时,我不想获取相关附件数据,直到用户点击他们的fienames下载它们。 (我想仅显示名称)
使用延迟加载,可以延迟加载附件,但是如何仅提前获取文件名(“ fileName ”属性类附件),而不是“ fileData ”
提前致谢。
答案 0 :(得分:1)
您需要编写自定义查询以仅加载附件的名称。在您的应用程序中,您应该使用某种TicketService
方法并使用loadTicket
方法。在该方法中,您应该加载票证(并且只加载票证),然后加载附加到票证的附件的名称。
将该数据返回给用户界面。当用户单击附件名称时,您可以加载完整的附件。
答案 1 :(得分:1)
在没有显式查询的情况下使用简单对象加载很难做到。我建议创建自定义查找器方法(可能使用本机SQL查询)。首先获取ID和文件名,显示它们,当用户点击FileName时,你有id,从中获取附件。