Java / Hibernate - добавлен новый столбец в таблицу, теперь я хочу заполнить его существующими данными из другой таблицы - PullRequest
0 голосов
/ 12 марта 2019

Итак, в основном у меня есть две таблицы: NaturalPerson , которая содержит personalNumber столбец и NaturalPersonReserve , где я добавил новый столбец personalNumber.Обе таблицы содержат существующие данные, и я хочу заполнить мою NaturalPersonReserve новый столбец personalNumber из naturalPerson s (я имею в виду существующие данные для обновления из столбца одной таблицы во вторую)

Объект 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;

1 Ответ

0 голосов
/ 12 марта 2019

По сути, вы добавили новый столбец и хотите заполнить его данными из другой таблицы.Это не совсем проблема Java / Spring / Hibernate.Такая проблема будет существовать независимо от того, как построено ваше приложение.

Я вижу только два пути:

  • Написать оператор SQL, который будет обновлять таблицу на основеотборное утверждение.Синтаксис может меняться в зависимости от того, какую БД вы используете.Эта запись содержит пример Oracle.

  • Напишите программу (в вашем случае, вероятно, на Java), которая обновит каждый регистр правильными данными.Он будет иметь тот же эффект, что и вышеуказанный параметр, но будет реализован на выбранном вами языке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...