#java #mysql #jpa #axon
#java #mysql #jpa #axon
Вопрос:
Я пытаюсь реализовать приложение Axon, используя хранилище событий JPA и базу данных mysql. Hibernate автоматически генерирует все таблицы, и пока все работает нормально.
Мой вопрос — могу ли я заменить таблицу mysql hibernate_sequence для AUTO_INCREMENT
столбцов в Mysql. Я предполагаю, что для того, чтобы сделать это, мне нужно было бы изменить исходный код Axon, поскольку я не могу найти другой настраиваемый способ изменить @Id
аннотацию для события домена @Entity
или других объектов?
Обновить
Хорошо, мне удалось это сделать, поместив новый файл в srcmainresourcesMETA-INForm.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:
Вы могли бы внести эту корректировку с помощью кода, это правда. Однако более просто указать orm.xml
файл в вашем проекте, который для некоторых таблиц ( domain_event_entry
таблицы в вашем сценарии, я полагаю) может корректировать определенные столбцы. Там вы должны быть в состоянии настроить генератор последовательностей так, как вы хотите, чтобы это было.
Надеюсь, это поможет!