Axon - JPA Магазин событий для MySql - PullRequest
1 голос
/ 09 марта 2019

Я пытаюсь реализовать приложение Axon, используя JPA Event Store и базу данных mysql. Hibernate автоматически генерирует все таблицы и пока работает нормально.

Мой вопрос - могу ли я заменить таблицу mysql hibernate_sequence для AUTO_INCREMENT столбцов в Mysql. Я думаю, что для этого мне нужно будет изменить исходный код Axon, так как я не могу найти другой настраиваемый способ изменить аннотацию @Id для события домена @Entity или другие права?

UPDATE

ОК, мне удалось сделать это, поместив новый файл в src\main\resources\META-INF\orm.xml со следующим кодом:

<?xml version="1.0" encoding="UTF-8" ?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"
                 version="2.0">

    <mapped-superclass class="org.axonframework.eventhandling.AbstractSequencedDomainEventEntry" access="FIELD">
        <attributes>
            <id name="globalIndex">
                <generated-value strategy="IDENTITY"/>
            </id>
        </attributes>
    </mapped-superclass>

    <entity class="org.axonframework.modelling.saga.repository.jpa.AssociationValueEntry" access="FIELD">
        <attributes>
            <id name="id">
                <generated-value strategy="IDENTITY"/>
            </id>
        </attributes>
    </entity>

</entity-mappings>

1 Ответ

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

Вы можете сделать это с помощью кода, это правда.Однако проще указать в вашем проекте файл orm.xml, который для некоторых таблиц (я полагаю, для таблицы domain_event_entry в вашем сценарии) может настраивать определенные столбцы.Там вы сможете настроить генератор последовательности в соответствии с вашими желаниями.

Надеюсь, это поможет!

...