EntityChangedEvent и триггер в PostgreSQL

Столкнулся с неприятной ситуацией. Возможно кто-то подскажет решение.

Имеем некоторую сущность IdentityCard:

@Entity(name = "digitalid_IdentityCard")
public class IdentityCard extends BaseIdentityIdEntity implements Creatable, Updatable, SoftDelete {
    //
}

И EntityChangedEvent для неё:

@Component("digitalid_IdentityCardChangedListener")
public class IdentityCardChangedListener {

    @Inject
    private TransactionalDataManager txDataManager;

    @TransactionalEventListener(phase = TransactionPhase.BEFORE_COMMIT)
    public void updateExamWithIdentityCard(EntityChangedEvent<IdentityCard, IdProxy<Long>> event) {
        if (event.getType() != EntityChangedEvent.Type.CREATED)
            return;

        System.out.printf("EntityId=[%s]\n", event.getEntityId()); // для дебага

        final IdentityCard identityCard = txDataManager.load(event.getEntityId())
                .viewProperties("employee")
                .one();
        // далее что-то делаем с identityCard 
    }

}

И в “обычной” ситуации всё работает и в консоли видим (например)

EntityId=[Id{ru.consyst.kolnpp.asup.digitalid.entity.IdentityCard, 2210}]

Где 2210 действительно ID для последней вставленной в таблицу digitalid_IdentityCard строки.

Потом возникла необходимость на таблицу digitalid_IdentityCard повесить триггер

CREATE OR REPLACE TRIGGER identity_card_changed_trigger
    AFTER INSERT OR UPDATE
    ON digital_id.digid_identity_card
    FOR EACH ROW
    EXECUTE FUNCTION digital_id.identity_card_changed();

CREATE OR REPLACE FUNCTION digital_id.identity_card_changed() RETURNS TRIGGER
AS $function$
    DECLARE new_update_ts timestamp;
    BEGIN
        new_update_ts = CASE WHEN NEW.update_ts = OLD.update_ts THEN current_timestamp ELSE NEW.update_ts END;
        IF (TG_OP = 'INSERT' AND NEW.delete_ts IS NULL) THEN
            IF (NEW.status <> 'CANCELED') THEN
                INSERT INTO digital_id._changes_audit (entity_id, entity_class, action_, update_ts)
                VALUES(NEW.id, 'digitalid_IdentityCard', 'CREATE', new_update_ts);
            END IF;
        END IF;
        RETURN NULL;
    END;
$function$ LANGUAGE plpgsql;

В результате, при попытке сохранить новый экземпляр сущности **IdentityCard ** получаю ошибку

ava.lang.IllegalStateException: No results
	at com.haulmont.cuba.core.global.FluentLoader$ById.one(FluentLoader.java:270) ~[cuba-global-7.2.20.jar:7.2.20]
	at ru.consyst.kolnpp.asup.digitalid.listeners.IdentityCardChangedListener.updateExamWithIdentityCard(IdentityCardChangedListener.java:35) ~[digitalid-core-0.1-SNAPSHOT.jar:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_323]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_323]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_323]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_323]
	at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:344) ~[spring-context-5.3.23.jar:5.3.23]
	at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:229) ~[spring-context-5.3.23.jar:5.3.23]
	at org.springframework.transaction.event.TransactionalApplicationListenerSynchronization.processEventWithCallbacks(TransactionalApplicationListenerSynchronization.java:80) ~[spring-tx-5.3.23.jar:5.3.23]
	at org.springframework.transaction.event.TransactionalApplicationListenerSynchronization.beforeCommit(TransactionalApplicationListenerSynchronization.java:59) ~[spring-tx-5.3.23.jar:5.3.23]
	at com.haulmont.cuba.core.sys.persistence.PersistenceImplSupport$ContainerResourceSynchronization.publishEntityChangedEvents(PersistenceImplSupport.java:529) ~[cuba-core-7.2.20.jar:7.2.20]
	at com.haulmont.cuba.core.sys.persistence.PersistenceImplSupport$ContainerResourceSynchronization.beforeCommit(PersistenceImplSupport.java:457) ~[cuba-core-7.2.20.jar:7.2.20]
	at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:97) ~[spring-tx-5.3.23.jar:5.3.23]
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:916) ~[spring-tx-5.3.23.jar:5.3.23]
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:727) ~[spring-tx-5.3.23.jar:5.3.23]
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711) ~[spring-tx-5.3.23.jar:5.3.23]
	at com.haulmont.cuba.core.sys.TransactionImpl.commit(TransactionImpl.java:104) ~[cuba-core-7.2.20.jar:7.2.20]
	at com.haulmont.cuba.core.app.RdbmsStore.commit(RdbmsStore.java:561) ~[cuba-core-7.2.20.jar:7.2.20]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_323]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_323]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_323]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_323]
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) ~[spring-aop-5.3.23.jar:5.3.23]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) [spring-aop-5.3.23.jar:5.3.23]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) [spring-aop-5.3.23.jar:5.3.23]
...

а в консоли вижу

EntityId=[Id{ru.consyst.kolnpp.asup.digitalid.entity.IdentityCard, 25226}]

где 25226 - это ID записи в таблицу _changes_audit, которая вставилась в результате выполнения триггерной функции.
Т.е., как будто, в event попал ID строки не из таблицы сущности IdentityCard, а последнего выполненного insert’а в транзакции, или как-то так.

Ну и в результате

final IdentityCard identityCard = txDataManager.load(event.getEntityId())
                .viewProperties("employee")
                .one();

конечно не даст результата, потому что с id=25226 сущности IdentityCard нет, т.к. реально у ней id=2210.

Есть какие-то предложения что с этим можно сделать?

Небольшое уточнение.
“Неверный” ID это результат последнего (явного или не явного) вызова nextval(). Например, дефолтное значение колонки id в _changes_audit.

nextval('digital_id._changes_audit_id_seq'::regclass)

Такое впечатление, что для сущностей типа Identity не важно куда был сделан insert, он просто берёт результат последнего nextval().