gpt4 book ai didi

java - 有没有办法禁止在 Hibernate 中获取列的整个值集?

转载 作者:行者123 更新时间:2023-11-30 05:40:33 25 4
gpt4 key购买 nike

在我们的“进程”表中有一个“类型”列。该列的值集在我们代码的枚举中定义。但是,该表中存在过时的行。这意味着有些行的“type”是代码枚举中不存在的值。问题是,每当我们访问此表中的任何行(而不是过时的行)时,我们都会收到一条错误,表明该列存在未知值。有没有办法在 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 真正选择它们,因此至少在应用程序级别,它们没有任何作用。

有关逻辑删除记录而不物理删除记录的更通用方法,请研究软删除。使用软删除,您可以向表中添加一个 boolean 列,如果对其进行标记,则表明该记录在逻辑上不再存在。

关于java - 有没有办法禁止在 Hibernate 中获取列的整个值集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55741637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com