ExtEntity extends Entity,
ExtEntityDetailsView extends EntityDetailScreen, EntityDetailScreen implements StandardDetailView
Тип сущности в data-контейнерах переопределил.
При открытии экрана редактирования новой сущности ExtEntity возникает ошибка DevelopmentException: Invalid item’s metaClass ‘Entity’.
Ошибка возникает, т.к. DetailViewTypeExtractor определяет тип сущности через resolvableType интерфейса DetailView как “Entity”, а не как “ExtEntity”.
Временно решил проблему переопределением StandardDetailView#initNewEntity.
Подскажите пожалуйста,может есть более правильный подход?
P.S. если использовать аннотацию @ReplaceEntity то проблема не возникает.
тестовый проект (138.5 КБ)
Воспроизводится в тестовом проекте при попытке создания новой сущности ExtEntity
@ReplaceEntity не использую так как для расширенной сущности требуется небольшая модификация экранной логики, при этом экран старой сущности требуется сохранить.
Аналогичный подход я использовал в CUBA platform, и там такой подход работал т.к. тип сущности определялся из InstanceContainer, а не через тип дженерика.
Если такой подход неправильный подскажите пожалуйста, как правильно добиться такого поведения в Jmix? На текущий момент я просто переопределил StandardDetailView#initNewEntity
Здравствуйте!
Посмотрела прикрепленный проект, описанная вами проблема была замечена только на вашем проекте, но были найдены другие проблемы, которые не дают выполниться корректно данному кейсу.