簡體   English   中英

如何禁用基於一個字段的實體更新?

[英]How disable entity updating based on one field?

假設有一個像Document這樣的實體,並且它具有type字段。 typedraft ,可以更新。 但是,當created type時,hibernate不應保存任何修改后的值的文檔。 休眠可能嗎?

您可以使用@Immutable注釋創建不可變的實體,在這種情況下,您將無法修改該實體,則該實體將@Immutable

另一種解決方案是通過會話將實體設置為只讀,如官方文檔中所示。

另一種解決方案是為您的實體提供EntityListener ,例如:

@Entity
@EntityListeners(MakeReadOnly.class)
public class SomeEntity {
    // ...
}

public class MakeReadOnly {
    @PreUpdate
    void onPreUpdate(Object o) {
        //according to filed value throw new RuntimeException("...");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM