Есть ли способ отключить выборку всего набора значений для столбца в Hibernate? - PullRequest
1 голос
/ 18 апреля 2019

В нашей таблице «Процесс» есть столбец «Тип».Набор значений этого столбца определен в перечислении в нашем коде.Однако в этой таблице есть устаревшие строки.Это означает, что есть строки, где «тип» - это значение, которого нет в перечислении кода.Проблема в том, что всякий раз, когда мы обращаемся к ЛЮБЫМ (не устаревшим) строкам в этой таблице, мы получаем ошибку, что для этого столбца есть неизвестное значение.Есть ли способ отключить эту функцию в спящем режиме, так как мы не хотим удалять эти строки.

@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;

1 Ответ

1 голос
/ 18 апреля 2019

Если эти «устаревшие» записи больше не вписываются в вашу модель данных Hibernate, то я рекомендую просто переместить их в какую-нибудь архивную таблицу.В конце концов, вы все равно не можете выбрать их сейчас, используя Hibernate, поэтому, по крайней мере, на уровне приложений они не служат цели.

Для более общего способа логического удаления записи без ее физического удаления, посмотритев мягкое удаление.Используя мягкое удаление, вы добавляете в таблицу один логический столбец, который, если он помечен, будет указывать, что записи логически больше нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...