spring - 我可以使用 JPA 将列配置为可删除吗
问题描述
希望我没有要求太多,但我有一个用例,其中当前正在使用的列需要在不久的将来删除。我想知道我现在是否可以自己处理。
这是更多信息:假设我有一张桌子
ID | NAME | PHONE | PHONE_ENC
其中 PHONE_ENC(加密电话号码)是要求,预计将在未来使用。在这里,一旦我从使用 PHONE 切换到 PHONE_ENC 并迁移旧记录,我想删除 PHONE 列本身。
这是我可以在不改变 DO 的情况下做的事情吗?这是现在的样子:
@Entity
@Table(name = "CUST")
class Customer {
@Id
@Column(name="ID")
String id;
@Column(name="NAME")
String name;
@Column(name="PHONE")
String phone;
@Column(name="PHONE_ENC")
String encPhone;
}
我希望我可以为 @Column(name="PHONE") 配置类似 droppable 的东西
解决方案
简短的回答:不,你不能。
长答案:可能有一种方法,但我强烈建议不要这样做,因为它增加了很多复杂性而收效甚微。
您可以创建映射到单个表的继承层次结构,其中一个子类具有phone
列,另一个子类具有phone_enc
列。当然,您还需要一个鉴别器列,然后在更新时更新它phone_enc
。
推荐阅读
- javascript - 如何编辑使用函数时显示的描述?
- r - 创建具有不同范围和权重的样本
- python - 如何修复 docker 映像中 python-crontab 中的“PermissionError:[Errno 13] Permission denied”?
- selenium - 无法找到正确的 Xpath
- github - GoCD 会在每个阶段之前从 GitHub 签出最新代码吗?
- string - 鱼壳的字符串拆分和外语
- kotlin - 在 kotlin 中,参数变量被创建为本地 'val' 变量,不能被其他值重用
- routing - 如何在没有类型的情况下将路由(found-relay)集成到中继中?
- ms-access - 从多行文本框查询
- java - ConcurrentHashMap 陷入无限循环 - 为什么?