Как “параметризовать” экземпляр базы данных JPA в persistence.xml?

У меня есть веб-приложение Java, усиливающее JPA. Экземпляр базы данных указан в persistence.xml файл с помощью jta-data-source тег.

Я хотел бы развернуть вторую копию веб-приложения на том же (glassfish) сервер, но указал на другой экземпляр базы данных.

Что лучший способ состоит в том, чтобы достигнуть этого? Я думаю идеально, я хотел бы поместить a persistence.xml файл переопределения за пределами войны (где-нибудь на пути к классу?). Я не абсолютно уверен, куда поместить его или как определить его способом, что это не было бы confilt с моим другим экземпляром. Я вижу, что мы размещаем горстку экземпляров этим способом (SaaS), и я хотел бы, чтобы конфигурация была вне развернутой войны так, чтобы это не становилось проблемой обслуживания. Совместное использование экземпляра базы данных между клиентами не является опцией из соображений безопасности.

Я уверен, что это не уникальная проблема нашей группе. Каковы лучшие практики, или другие решений используют для решения этой проблемы?

5
задан Vinnie 8 June 2010 в 15:32
поделиться

2 ответа

Полагаю, вы уже меняете копию и в других вещах? (например, имя файла уха)

Если вы используете программное обеспечение для сборки, такое как ant или maven, вы можете использовать заполнитель внутри persistence.xml и создать другую «копию», просто используя другие параметры сборки.

например. с maven

mvn clean install -DmyDatabaseName = db / somedb

1
ответ дан 14 December 2019 в 19:01
поделиться

Я бы упаковал две версии веб-приложения и объявил конкретный источник данных в элементе jta-data-source их соответствующего persistence.xml (я не думаю, что вы можете экстернализируйте этот файл, ожидается, что он будет в WEB-INF / classes / META-INF / persistence.xml )

1
ответ дан 14 December 2019 в 19:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: