Проблема кэш и сущностей с софт удалением

При удалении сущности с софт уделением включённой в кэш, она остается в кэше, с заполненными полями deletedBy и deletedDate. И при селекте возвращается как действующая.
Ошибка воспроизводится на ВСЕХ версиях jmix.

В приложенном проекте при запуске теста Ent1Test от проходит без ошибок хотя должен генерировать исключение NoResultException. Если исключить сущность из кэша (убрать eclipselink.cache.shared.Ent1=true из конфига) работает так как ожидается.
jmixCaheTest27.zip (59.3 КБ)

Владимир, здравствуйте!

Спасибо, что обратили внимание на проблему! Завел тикет.

Данная проблема проявляется только для entity cache (кэша внутри Entity Manager), т.е. для загрузки сущности по id и не должна влиять на результаты выполнения select запросов, так как они ориентируются на query cache.
В качестве WA можно добавить слушатель, который будет дочищать entity cache при мягком удалении сущности:

@Component
public class EntityCacheClearingEventListener {

    @PersistenceContext
    EntityManager em;

    @TransactionalEventListener(phase = TransactionPhase.BEFORE_COMMIT)
    public void onChangedBeforeCommit(final EntityChangedEvent<?> event) {
        if (event.getType() == EntityChangedEvent.Type.DELETED) {
            em.getEntityManagerFactory().getCache().evict(event.getEntityId().getEntityClass(), event.getEntityId().getValue());
        }
    }
}

Поправленный проект: jmixCaheTest27WithFix.zip (64.2 КБ)

С уважением,
Дмитрий