У меня есть сценарий, в котором мне нужно загрузить другой диалект, провайдера в мой файл persistence.xml в зависимости от среды, в которой я развертываю приложение.
Для Eg
В одной среде я использую Oracle11g, а в другой - MySql8.
Я хочу, чтобы мой файл persistnece.xml выглядел примерно так.
<persistence-unit name="firstPU" transaction-type="RESOURCE_LOCAL">
<provider>${somekey.provider}</provider>
<properties>
<property name="hibernate.dialect" value="${somekey.dialect}" />
</properties>
</persistence-unit>
Затем создайте два отдельных файла свойств (first.property, second.property) и выберите любой из них, используя профиль сборки в моем файле pom.xml. Например,
<profile>
.
.
.
<build>
<resources>
<resource>
<directory>src/main/resources/config/${build.profile.id}</directory>
<excludes>
<exclude>**/first.properties</exclude>
</excludes>
</resource>
</resources>
</build>
.
.
.
</profile>
Таким образом, основываясь на выбранном профиле, он исключит один из файлов .property и прочитает из другого.
Проблема со всем этим в том, что значения возвращаются как нулевые из файлов свойств. ( больше не )
Я что-то здесь упускаю или есть лучший способ сделать такого рода вещи?
Обновление -
это нормально работает для чтения значений диалекта. Тем не менее, я не могу читать Provider !!
Можно ли также прочитать значение поставщика из файла свойств?