Мягкое удаление

Добрый день!
Подскажите, пожалуйста, есть ли способ не применять отфильтровывание мягко удаленных записей? (Например, если мы хотим, чтобы они в духе 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 симпатия