簡體   English   中英

有沒有辦法禁用在 Hibernate 中獲取列的整個值集?

[英]Is there a way to disable fetching the entire value set for a column in Hibernate?

在我們的“流程”表中有一個“類型”列。 此列的值集在我們代碼的枚舉中定義。 但是,此表中有過時的行。 這意味着存在“類型”是代碼枚舉中不存在的值的行。 問題是每當我們訪問該表中的任何(不是過時的)行時,我們都會收到一個錯誤,即該列存在未知值。 有沒有辦法在休眠中禁用此功能,因為我們不想刪除這些行。

@EqualsAndHashCode(callSuper = true, of = {})
@Table(name = ProcessEntity.TABLE_NAME)
public class ProcessEntity extends BaseEntity implements ValidityHolder {
public static final String TABLE_NAME = "PROCESS";

@OneToMany(mappedBy = "consent", cascade = CascadeType.ALL)
private Set<ConsentAnswerEntity> consentAnswers;

@OneToMany(mappedBy = "consent", cascade = CascadeType.ALL)
private List<ProcessConsentEntity> processConsents;

@OneToMany(mappedBy = "consent", cascade = CascadeType.ALL)
private Set<ProcessTypeConsentEntity> processTypeConsents;

@Enumerated(EnumType.STRING)
@Column(name = "TYPE_ID")
private Type TpyeId;

如果這些“過時”的記錄不再適合您的 Hibernate 數據模型,那么我建議將它們移動到某個存檔表中。 畢竟,現在無論如何使用 Hibernate 都無法真正選擇它們,因此至少在應用程序級別,它們沒有任何用處。

對於在邏輯上刪除記錄而不物理刪除它的更通用方法,請查看軟刪除。 使用軟刪除,您可以向表中添加一個布爾列,如果標記該列,則表明該記錄在邏輯上不再存在。

暫無
暫無

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

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