Platform-6.8.5 , Studio 6.8.2
В приложении тестовый проект на котором легко воспроизвести ошибку как на экране приложения (NewEntity2.browse), так и в Инспекторе сущностей.
Есть сущность NewEntity1 с двумя атрибутами, один один локальный, второй - неперситентный.
Instance name задействованы оба атрибута.
@NamePattern("%s %s|transientField,localField")
@Table(name = "SOTRERROR_NEW_ENTITY1")
@Entity(name = "sotrerror$NewEntity1")
public class NewEntity1 extends StandardEntity {
private static final long serialVersionUID = -1934877673313271356L;
@Column(name = "LOCAL_FIELD")
protected String localField;
@Transient
@MetaProperty
protected String transientField;
.....
}
Есть сущность NewEntity2 с одним локальным атрибутом и атирибутом (ассоциация, MANY_TO_ONE) на NewEntity1.
@NamePattern("%s|name")
@Table(name = "SOTRERROR_NEW_ENTITY2")
@Entity(name = "sotrerror$NewEntity2")
public class NewEntity2 extends StandardEntity {
private static final long serialVersionUID = 2051584070870050845L;
@Column(name = "NAME")
protected String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "LINK_ID")
protected NewEntity1 link;
...
}
Сущности и экраны сформированы стандартными средствами Studio 6.8.2.
Если на простом табличном экране просмотра NewEntity2 кликнуть сортировку по колонке с атрибутом “link” и обновить экран, то получим очень неинформативную ошибку
Аналогично в Инспекторе сущностей для NewEntity2 - значение колонки корректно отображается, но получаем NullPointerException.
Результат не зависит от того, пуст или заполнен неперсистентный атрибут.
А если в NewEntity1 в Instance name следование атрибутов поменять местами, то при попытке просмотра перечня NewEntity2 табличном экране NewEntity2.browse получим internal error
Хотелось бы как минимум, при попытке задействовать в Instance name неперсистентного атрибута, получать предупреждение в Studio о возможных проблемах на экранах.
Ну и более информативное сообщение об ошибке тоже сэкономило бы много времени.
SotrError.zip (33,9 КБ)