Добрый день!
У меня есть стандартный DetailView, который в качестве экземпляра сущности использует PolicyUiDto, которая не является JPA-сущностью. Так выглядит PolicyUiDto (приведена часть кода):
@JmixEntity
public class PolicyUiDto {
private static final long START_TIME = System.currentTimeMillis();
@JmixId
@JmixGeneratedValue
private UUID id;
private String name;
Также есть LiswView, где используется DataGrid. При выделении строки и нажатии кнопки “Изменить”, ловлю ошибку:
GuiDevelopmentException: Entity 'PolicyUiDto' cannot be loaded by id '6d2b751b-f87f-49d4-b2ff-7682dbbbfebd' due to it is non-JPA entity or load delegate is not set. To correctly handle editing non-JPA entities open editor in DIALOG mode. Another way is using 'routeParametersProvider' in EditAction and installing load delegate in editor or overriding 'initExistingEntity' method
PolicyUiDto не должна становиться JPA-сущностью, это важный момент. Режим диалогового окна использовать также нежелательно. Делегат загрузки у меня определен и выглядит следующим образом:
@Install(to = "policiesDl", target = Target.DATA_LOADER)
public List<PolicyUiDto> policiesDlLoadDelegate(final LoadContext<PolicyUiDto> loadContext) {
LoadContext.Query query = loadContext.getQuery();
if (query != null) {
int offset = query.getFirstResult();
int limit = query.getMaxResults();
return policiesUiService.getPolicies(offset, limit);
} else {
return Collections.emptyList();
}
}
Что-то не очень понимаю, что еще нужно реализовать, чтобы избежать данной ошибки?