Здравствуйте!
Мы переписываем унаследованное приложение, и нужно сохранить данные.
Интересны ваши рекомендации к самому подходу…
ETL пакетом грузим все имеющиеся в старой системе экземпляры сущностей с их имеющимися идентификаторами (для сохранения связей с другими объектами системы).
Создаем сущность во внешней базе путем генерации из таблицы SQL Server:
package ru.roe.infocenter.entity;
import com.haulmont.chile.core.annotations.NamePattern;
import com.haulmont.cuba.core.entity.BaseIntegerIdEntity;
import com.haulmont.cuba.core.global.DesignSupport;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
@DesignSupport("{'imported':true}")
@NamePattern("%s|name")
@Table(name = "cl_link_role")
@Entity(name = "infocenter_ClLinkRole")
public class ClLinkRole extends BaseIntegerIdEntity {
private static final long serialVersionUID = 8724449190756532183L;
@NotNull(message = "{msg://infocenter_ClLinkRole.name.validation.NotNull}")
@Column(name = "name", nullable = false)
protected String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Сгенерированный Editor при создании нового экземпляра сущности естественно подставляет 1. Нам же нужно немного изменить эту часть логики (id из имеющихся в базе + 1). Как это правильно сделать?
Попытка в сущности сделать: Event Listeners > Create EntityChangeEvent listener приводит к ошибке “Entity does not have UUID”…