MySQL Групповая репликация требует первичных ключей, конфликтует с Hibernate Embeddable - PullRequest
0 голосов
/ 20 июня 2020

В настоящее время я переношу свой MySQL 5.7 из режима одного узла в режим нескольких узлов с групповой репликацией. В этом режиме все таблицы должны определять первичный ключ .

Моя проблема возникает из моего приложения Spring Boot, где у меня есть несколько @ElementCollection s из @Embeddable s. Очевидно, что таблицы этих Embeddable не определяют первичный ключ. Когда я пытаюсь вставить что-то в БД, я получаю следующее исключение, потому что в таблицах ElementCollection отсутствует первичный ключ.

java.sql.SQLException: The table does not comply with the requirements by an external plugin.

Итак, теперь мне интересно, как решить эту проблему самым простым способом. возможный способ.

В этом сообщении говорится, что невозможно добавить какой-то первичный ключ в ElementCollection таблицы. Итак, единственный способ решить эту проблему - переключить отношения ElementCollection s на OneToMany с сущностями вместо встраиваемых объектов? Как мне сделать это элегантным способом для ElementCollection s из String s и Enum s?

Или я могу просто добавить миграцию БД, где я добавляю автоматически увеличивающийся первичный ключ для всех затронутые таблицы?

Есть ли еще какие-то вещи, о которых мне следует знать при переключении на групповую репликацию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...