2015-09-22 95 views
2

在一個應用程序中,有幾個實體類,爲此數據庫的更新語句將被禁止。我想插入和讀取數據庫,但不會對現有記錄進行任何更新。將完整實體標記爲「updatable = false」

有沒有一種方法,以紀念整個@Entity類爲updatable=false

  • 人們可以詮釋的每一個領域與@Column(updatable=false)或類似的註釋,但出於顯而易見的原因,我想避免這種情況。

  • 擺脫setter方法也不是一種選擇,因爲實體類也用作DTO,而應用程序的其他部分需要這些setter。所以這會導致現有代碼的重構。

有另一種簡單幹淨的方式來實現想要什麼,我有使用JPA 2.1/EclipseLink的(+擴展)

回答

4

你可以使用​​爲:

@Entity 
public class ReadOnlyEntity { 
    @PreUpdate 
    private void preUpdate() { 
    throw new UnsupportedOperationException(); 
    } 
} 

這樣你永遠不會更新(寫)該實體。

+0

好而有效的想法,tyvm! :) – stg

相關問題