希望我并没有要求太多,但是我有一个用例,其中需要在不久的将来删除当前正在使用的列。我想知道我现在是否可以自己解决这个问题。
更多信息: 假设我有一个类似
的表格 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的内容
答案 0 :(得分:1)
简短的回答:不,你不能。
长答案:也许有一种方法,但是我强烈建议不要这样做,因为它增加了很多复杂性,却几乎没有收益。
您可以创建一个映射到单个表的继承层次结构,一个子类具有phone
列,另一个子类具有phone_enc
列。当然,您还需要一个discriminator列,然后在更新phone_enc
时更新。