【问题标题】:OpenJPA1.2 - lazy load a BLOBOpenJPA1.2 - 延迟加载 BLOB
【发布时间】:2012-05-18 17:37:14
【问题描述】:

我有一个非常简单的 JPA 实体。它具有一些简单的元数据字段、ID 和大约 500kB-10MB 的大负载字符串。

@Entity
public class MyEntity{
  @Id
  @GenerateValue(Strategy=GenerationType.IDENTITY)
  private long myEntityId;

  private String metaData1; 
  ..
  private String metaDataN;

  @Lob
  private String payload; // large.

}

大多数时候,我并不关心加载有效负载,而只是查询元数据字段。有没有一种方法可以在不创建包装有效负载的特定实体的情况下延迟加载有效负载,并与我的主要实体中的那个实体具有延迟加载一对一的关系?

整个事情是使用 OpenJPA 1.2 和一个 DB2 支持数据库实现的。

【问题讨论】:

    标签: jpa db2 jpql openjpa


    【解决方案1】:
    @Lob
    @Basic(fetch=FetchType.LAZY)
    private String payload;
    

    【讨论】:

      【解决方案2】:

      我想你也可以使用:

      @OneToOne(fetch=FetchType.LAZY)
      @JoinColumn(//some col. name)
      private String payload;
      

      【讨论】:

        【解决方案3】:

        Hibernate 不会加载 lob,只要将其映射为 Lob 类型即可

        【讨论】:

        • 我不太明白那句话。在这个老问题中 - 映射类型实际上是 CLOB。
        猜你喜欢
        • 2013-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-10
        • 1970-01-01
        • 1970-01-01
        • 2014-03-06
        • 2021-07-13
        相关资源
        最近更新 更多