Axon 4 - JpaEventStorageEngine защищенный конструктор - PullRequest
1 голос
/ 05 марта 2019

При попытке настроить Upcaster в Axon 4 на основе документации, доступной по адресу: События версий Axon 4 Framework

Я получаю сообщение об ошибке: JpaEventStorageEngine () имеет защищенный доступ

    @Bean
    public JpaEventStorageEngine eventStorageEngine(
            Serializer serializer,
            DataSource dataSource,
            SingleEventUpcaster myUpcaster,
            EntityManagerProvider entityManagerProvider,
            PlatformTransactionManager transactionManager) {
        return new JpaEventStorageEngine(serializer,
                myUpcaster::upcast,
                dataSource,
                entityManagerProvider,
                transactionManager);
    }

Что мне не хватает?

1 Ответ

1 голос
/ 06 марта 2019

Я думаю, что могу помочь вам в этом.

Вы, к сожалению, только что нашли проблему со справочным руководством.Как и в Axon 4, все основные компоненты инфраструктуры больше не создаются через конструктор, а через шаблон Builder .

Таким образом, правильный подход к его созданию будет:

@Bean
public JpaEventStorageEngine eventStorageEngine(Serializer eventSerializer,
                                                Serializer snapshotSerializer,
                                                DataSource dataSource,
                                                SingleEventUpcaster myUpcaster,
                                                EntityManagerProvider entityManagerProvider,
                                                TransactionManager transactionManager) throws SQLException {
    return JpaEventStorageEngine.builder()
                                .eventSerializer(eventSerializer)
                                .snapshotSerializer(snapshotSerializer)
                                .dataSource(dataSource)
                                .entityManagerProvider(entityManagerProvider)
                                .transactionManager(transactionManager)
                                .upcasterChain(myUpcaster)
                                .build();
}

Я только что настроил Справочное руководство, чтобы отразить это соответствующим образом;Мне очень жаль за доставленные неудобства.

...