0
我有一個6列的表,其中一個是一個CLOB列,在搜索這個表時,我不想把這個列數據,但當用戶請求細節然後生病加載它,我怎麼實現與Spring Data JPA,我嘗試使用投影+ MetaModel對象沒有幫助Spring Data + JPA如何避免加載列
我有一個6列的表,其中一個是一個CLOB列,在搜索這個表時,我不想把這個列數據,但當用戶請求細節然後生病加載它,我怎麼實現與Spring Data JPA,我嘗試使用投影+ MetaModel對象沒有幫助Spring Data + JPA如何避免加載列
我通過將兩列移動到一個單獨的表中做到了這一點。之前:
@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;
}
這意味着默認不加載的圖像/數據大拇指,我只是增加了一個,當我需要他們像下面這樣獲取:
String jpql = "select l from Light l join fetch h.image i";
有other techniques described in this answer但他們並不像我認爲這個簡單的解決方案那樣乾淨。
嘗試使用'@Basic(fetch = FetchType.LAZY)註釋該字段' – 2015-03-02 14:53:17
我有它但我在Web層從Entity Object轉換爲Resource對象,那麼我該如何避免它 – gnanesh 2015-03-02 15:02:43
不要調用getter對於該字段,因爲這樣做會觸發查詢來獲取CLOB數據。另外,請注意,這可能不起作用,不同的JPA實現以不同的方式處理這個問題。 – 2015-03-02 15:07:50