我可以使用JPA

时间:2018-07-17 05:37:40

标签: spring hibernate jpa spring-data-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的内容

1 个答案:

答案 0 :(得分:1)

简短的回答:不,你不能。

长答案:也许有一种方法,但是我强烈建议不要这样做,因为它增加了很多复杂性,却几乎没有收益。

您可以创建一个映射到单个表的继承层次结构,一个子类具有phone列,另一个子类具有phone_enc列。当然,您还需要一个discriminator列,然后在更新phone_enc时更新。