Boa tarde, aqui no trabalho configuroo persistence.xml usando essa configuração como caminho do banco no arquivo persistence.xml:
<property name="javax.persistence.jdbc.url" value="jdbc:firebirdsql:localhost/3050:c:/util/banco_mineradora.gdb"/>
Porém como vou ter varios clientes, como poderia fazer pra editar esse caminho dinamicamente, sem ter que extrair os arquivos do .jar e editar o xml no bloco de notas?
Você pode criar um arquivo .properties, e lá passar o endereço do banco de dados, usuário, url e outros parâmtetros necessário para configuração do acesso ao servidor de banco de dados,
depois faz com que o value seja igual ao valor declarado lá, assim deixa com maior portabilidade.
Pelo menos aqui no trabalho utilizamos assim
Mas e como você faz no arquivo xml pra ele pegar o valor de uma variavel?
Você pode usar JNDI também, pois assim os dados de conexão ficam no servidor de aplicações, e não no arquivo war.
Para cada servidor, existe uma forma diferente de criar JNDI’s, mas isso é relativamente simples.
O que eu vejo são datasources.
Você cria um datasource dentro do servidor e aponta para o datasource dentro do persistence.xml.
[quote=mateusviccari]Boa tarde, aqui no trabalho configuroo persistence.xml usando essa configuração como caminho do banco no arquivo persistence.xml:
<property name="javax.persistence.jdbc.url" value="jdbc:firebirdsql:localhost/3050:c:/util/banco_mineradora.gdb"/>
Porém como vou ter varios clientes, como poderia fazer pra editar esse caminho dinamicamente, sem ter que extrair os arquivos do .jar e editar o xml no bloco de notas?
[/quote]
A solução é usar um registro geral como o JNDI e configurar o JPA para usar o JNDI como fonte de DataSource. Isto funciona nos servidores de aplicação e em alguns webcontainers com suporte a jndi como o tomcat.
Lembre-se que o servidor é que deve definir este tipo de coisa e a aplicação simplesmente deve usar o que o servidor decidiu.