Хочу определить в java коде, экземпляр сущности создается или редактируется, для того чтобы в случае создания вычислить значения нескольких её полей программно. Подскажите, пожалуйста, как это можно сделать в JMIX?
Добрый день, Константин.
Для решения вашей задачи лучше всего переопределить InitEntityEventHandler
в контроллере экрана редактирования.
Этот Event публикуется только в случае создания новой сущности.
Пример для экрана редактирования экземпляра сущности User
:
@Subscribe
public void onInitEntity(InitEntityEvent<User> event) {
//set up your fields here
}
Этот способ также описан в документации Jmix Framework - ссылка.
Еще один способ - использовать компонент io.jmix.core.EntityStates
, чтобы инициализировать поля в произвольном месте в контроллере.
Как пример:
@Autowired
private EntityStates entityStates;
public void someMethod() {
if (entityStates.isNew(getEditedEntity())) {
//set up your fields here
}
}
1 симпатия