java - hibernate延迟加载集合

标签 java hibernate lazy-loading

我不太熟悉 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/

相关文章:

java - 如何从Java中的JavascriptExecutor返回字符串

java - 在 Spring Data Redis 和 Spring Data jpa 中重新启动应用程序时,数据库中的数据消失

angular - 使用动态导入延迟加载组件时编译器发出警告

c# - Entity Framework - 一对多关系的问题

javascript - 延迟加载 HTML5 图片元素

java - Hibernate session 不更新实体

java - 复制 List<List<Integer>>,但有大小限制

mysql - 创建类路径资源中定义的名称为 'entityManagerFactory' 的 bean 时出错。init 方法调用失败;

JavaFX:HBox中具有相同宽度的按钮

java - HIbernate 3.5.1 - 我可以直接加入 EHCache 2.0.1 吗?