【发布时间】:2012-08-18 06:45:12
【问题描述】:
我想将数据从一个表迁移到另一个表,除了两个具有不同表名的表之外,它们还具有不同的架构。
例如,现有的表是:
@Entity
public class Address {
private String uuid;
private String street;
private String postcode;
}
@Entity
public class User {
private String uuid;
private String name;
@One2One
private Address address;
}
需求改变后,我们将这两个类重构为这样的:
@Entity
public class UserChanged {
private String uuid;
private String name;
@Embedded
@AttributeOverrides(.....)
private Address address;
}
@Embeddable
public class AddressChanged {
private String street;
private String postcode;
}
这意味着,在新表中,我们只有一个“UserChanged”表,所有列都包含用户信息,如 uuid、姓名、街道和邮政编码。但是对于现有的,我们有两个表,分别是“用户”和“地址”,在“用户”表中,有一个外键“地址”,它使用主键引用“地址”表。
Address
------------------
uuid varchar (primary key)
street varchar
postcode varchar
User
------------------
uuid varchar (primary key)
name varchar
address_id varchar (foreign key)
UserChanged
------------------
uuid varchar (primary key)
name varchar
street varchar
postcode varchar
所以我要做的就是将“User”和“Address”表中的所有数据信息迁移到一个“UserChanged”表中,即User + Address -> UserChanged。
任何人都可以告诉我我应该为这个迁移需求编写的 sql 脚本。
【问题讨论】:
标签: java sql database hibernate