[英]How disable entity updating based on one field?
假設有一個像Document
這樣的實體,並且它具有type
字段。 type
為draft
,可以更新。 但是,當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.