Spring Boot JPA выводит имя схемы в файл свойств - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть 2 схемы для моего весеннего загрузочного приложения, которые я жестко кодирую в классе Entity, как этот

@Entity
@Table(name"TABLE_NAME_1", schema="SCHEMA_NAME_1")
public class EntityName1{
...
}

@Entity
@Table(name"TABLE_NAME_2", schema="SCHEMA_NAME_2")
public class EntityName2{
...
}

Проблема в том, что это имя схемы постоянно меняется в каждом выпуске.Поэтому после каждого выпуска мы должны приходить сюда и вносить необходимые изменения в имя схемы файла сущности.

Теперь я подумал, что мы можем настроить default_schema при весенней загрузке, но это не сработает, потому что нам нужно экстернализировать обе схемыnames.

Есть ли способ использовать что-то вроде этого: @Entity @Table (name "TABLE_NAME_1", schema = "{{default.schema_1}}") открытый класс EntityName1 {...}

@Entity
@Table(name"TABLE_NAME_2", schema="{{default.schema_2}}")
public class EntityName2{
...
}

где мы определяем default.schema_1 и и default.schema_2 во внешнем файле.

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете изменить значение схемы (или любое другое значение аннотации по этому вопросу) во время выполнения только с отражением.Например, как это сделать, смотрите здесь .

Затем вы можете создать компонент, реализующий ApplicationListener<ApplicationReadyEvent>, который будет выполнять метод onApplicationEvent, который в вашем случае изменит значение схемы для определенного класса сущностей после запуска вашего приложения.

...