【问题标题】:Data Migration between two tables with different schema for Java EE applicationJava EE 应用程序具有不同模式的两个表之间的数据迁移
【发布时间】: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


    【解决方案1】:
    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
    

    【讨论】:

      猜你喜欢
      • 2012-04-27
      • 1970-01-01
      • 2016-02-12
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      相关资源
      最近更新 更多