使用hibernate条件获取字段

时间:2014-05-05 09:03:28

标签: java entity-framework hibernate

我的应用程序中存在很大的性能问题,因为我的实体嵌入了两个我无法轻易删除的二进制字段(byte [])。

问题是我不需要在大多数情况下(实体列表)加载这些内容,但仅限于实体编辑和保存期间。

所以这是我的模型(简化):

@Entity
public class Specimen {

    @OneToMany(fetch = FetchType.EAGER, orphanRemoval = true)
    @JoinColumn(name = "specimen")
    @Cascade( { CascadeType.SAVE_UPDATE })
    @Fetch(value = FetchMode.SUBSELECT)        
    protected List<Document> documents;
}

@Entity
public class Document {

    protected String name;

    @Basic(fetch = FetchType.LAZY)
    protected byte[] content;
}

有办法:

  • 始终评估Specimen#documents
  • 在列出所有Specimen实体
  • 时不评估Document#内容
  • 在加载单个Specimen实体时评估Document#content?

0 个答案:

没有答案