Дублирование строк в базе данных PostgreSql при нажатии на кнопку из detail-view.xml

Добрый день! Подскажите, пожалуйста, почему при заполнении полей в JMIX (картинка “jmix2”) и при нажатии на кнопку “ОК” в JMIX (картинка “jmix2”) в базе данных PostreSql добавляются две строки, а не одна (картинка “jmix4”). Если в кнопку “ОК” не передавать методы, и при этом нажать в самом JMIX на кнопку “ОК”, то все равно добавится одна строка в базу данных Postgresql, у которой id_motor будет равен null (картинка “jmix5”). Если я уберу совсем кнопку “ОК”, а в кнопку “добавить” передам свои методы, то добавится одна строка в базу данных, но при этом JMIX будет спрашивать у меня “You have unsaved changes” (картинка “jmix1”), если я нажму на кнопку Save, то в базу данных добавится две строки, одной из них id_motor будет равен null, если я нажму на кнопку Dont Save то добавится одна с id_motor моего пользователя, который вошел в систему.
jmix1
jmix2
jmix3
jmix4
jmix5

Если у вас стандартный экран. То у него на saveAndCloseBtn стоит action saveAndCloseAction со своим методом сохранения.

Когда вы добавляете ClickListener. Вы не переопределяете дефолтной поведение кнопки. А добавляете еще одно. То есть при клике кнопки. Сущность сохраняется через дефолтный saveAndCloseAction и потом через ваш ClickListener (Как я понимаю он там сохраняется)

Когда вы своими руками сохраняете сущность, то по всей видимости вы делаете это не через dataContext экрана, и скорее всего не ставите обновленную сущность в контейнер экрана. По этому jmix считает что у сущности все еще есть изменения и она не сохранена в бд.

Если вы хотите своими руками проставить id юзера (Я так понимаю за это отвечает поле id_motor, наименование странное) то делайте это в InitEntityEvent

Или используйте в сущносте Черты Audit, такие как CreatedBy