Добрый день!
Подскажите, пожалуйста, есть ли способ не применять отфильтровывание мягко удаленных записей? (Например, если мы хотим, чтобы они в духе 1С так и болтались на экране с красным крестиком, пока их не удалят окончательно)
Можно, но тогда вам придется самостоятельно отключать скрытие удаленных записей на всех экранах, где это требуется.
Для этого у dataManager
есть метод hint
, которым мягкое удаление можно отключить для конкретной операции.
И если загрузчик данных вы описываете на экранах декларативно - придется переезжать на loadDelegate в контроллере экрана чтобы полностью управлять процессом.
Получится примерно такой loadDelegate:
@Install(to = "usersDl", target = Target.DATA_LOADER)
private List<User> usersDlLoadDelegate(LoadContext<User> loadContext) {
return dataManager.load(User.class)
.query("select c from sample_User c")
.hint(PersistenceHints.SOFT_DELETION, false)
.list();
}
Я бы рекомендовал использовать встроенное в Jmix мягкое удаление как системную функциональность, возможность для администратора восстановить случайно удаленное.
Если нужно что-то отображать в UI и давать действия пользователю - лучше вводите прикладной флаг “активности” записи.
1 симпатия