Spring Data + JPA如何避免加载列

时间:2015-03-02 14:50:43

标签: spring-data-jpa

我有一个包含6列的表,其中一列是CLOB列,在搜索此表时,我不想提供此列数据但是当用户请求详细信息然后加载它时,怎么做我使用Spring Data JPA实现了这一点,我试着在没有帮助的情况下使用Projections + MetaModel对象

1 个答案:

答案 0 :(得分:0)

我是通过将两列移动到一个单独的表中来完成的。之前:

@Entity
public class Heavy implements Serializable {
    // other properties
    private byte[] image;
    private byte[] thumb;
}

后:

@Entity
public class Light implements Serializable {
    // other properties

    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "fk_image_id")
    private RawImage image;

    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "fk_thumb_id")
    private RawImage thumb;
}

这意味着默认情况下不会加载图像/拇指数据,而我只是在需要时添加了一个fetch,如下所示:

String jpql = "select l from Light l join fetch h.image i";

other techniques described in this answer,但它们并不像我认为这个简单的解决方案一样干净。