猿问

有没有办法禁用获取 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;


holdtom
浏览 62回答 1
1回答

幕布斯6054654

如果这些“过时”的记录不再适合您的 Hibernate 数据模型,那么我建议将它们移动到某个存档表中。毕竟,您现在无论如何都不能使用 Hibernate 真正选择它们,所以至少在应用程序级别,它们没有任何用途。对于在不物理删除记录的情况下逻辑删除记录的更通用方法,请查看软删除。使用软删除,您将向表中添加一个布尔列,如果标记该列,则表明该记录在逻辑上不再存在。
随时随地看视频慕课网APP

相关分类

Java
我要回答