繁体   English   中英

Java / Hibernate-在表中添加了新列,现在我想用另一个表中的现有数据填充它

[英]Java / Hibernate - Added a new Column to table, now I want to populate it with existing data from another Table

所以基本上我有两个表: NaturalPerson ,它保存personalNumber列; NaturalPersonReserve ,在其中添加了一个新列personalNumber 两个表中都有现有数据,我想从naturalPerson的表中填充NaturalPersonReserve 新Column personalNumber (我的意思是将现有数据从一个表的列更新为第二个)

NaturalPerson实体:

@Entity
@Table(name = "naturalperson")
public class NaturalPerson implements Serializable {

    @Id
    @Column
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int personId;

    @Column(unique = true)
    private String personalNumber;

    @Column
    private String serialNumber;

    @Column
    private String firstname;

    @Column
    private String lastname;

    @Column
    private String birthdate;

    @Column
    private String gender;

NaturalPersonReserve实体:

@Entity
@Table(name = "natural_person_reserve")
public class NaturalPersonReserve extends SuperModel{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToOne
    @JoinColumn(name = "payment_id")
    private PaymentParts payment;

    // The relationship
    @ManyToOne
    @JoinColumn(name = "person_id")
    private NaturalPerson person;

    @ManyToOne
    @JoinColumn(name = "company_id")
    private Company company;

    @Column(name = "amount", columnDefinition = "DECIMAL(10,2) DEFAULT 0.0")
    private double amount;

    @Enumerated(EnumType.STRING)
    @Column(name = "operation_type")
    private EReserveType operationType;

    // My added column
    @Column(unique = true)
    private String personalNumber;

基本上,您添加了一个新列,并希望用另一个表中的数据填充它。 这实际上不是java / spring / hibernate问题。 无论您的应用程序如何构建,都会存在这种问题。

我只能看到两种方式:

  • 编写一条SQL语句,该语句将基于select语句更新表。 语法可能会有所不同,具体取决于您使用的数据库。 这篇文章有一个Oracle示例。

  • 编写一个程序(在您的情况下可能是Java),用正确的数据更新每个寄存器。 它与上述选项具有相同的效果,但是将以您选择的语言实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM