javaee应用中两个不同模式表之间的数据迁移

javaee应用中两个不同模式表之间的数据迁移,java,sql,database,hibernate,Java,Sql,Database,Hibernate,我想将数据从一个表迁移到另一个表,除了两个表名不同的表之外,它们还有不同的模式 例如,现有表格包括: @Entity public class Address { private String uuid; private String street; private String postcode; } @Entity public class User { private String uuid; private String name;

我想将数据从一个表迁移到另一个表,除了两个表名不同的表之外,它们还有不同的模式

例如,现有表格包括:

@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、名称、街道和邮政编码。然而,对于现有的表,我们有两个表“User”和“Address”,在“User”表中,有一个外键“Address”,它使用主键引用表“Address”

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脚本

insert into UserChanged (uuid, name, street, postcode) select a.uuid, u.name, a.street, a.postcode from address a, user u where a.uuid = u.address_id