[RESOLVIDO]Trabalhar com dois PersistenceContext[RESOLVIDO]

9 respostas
K

Alguem sabe me dizer se tem como trabalhar com dois PersistenceContext??

O cenário é o seguinte: uma aplicação web que o usuário irá selecionar
a base que irá conectar na hora do login. Ex: base Real, e outra de treinamento.

Valeu.

9 Respostas

Hebert_Coelho

Basta criar no persistence.xml o outro PersistenceUnit e utilizá-lo.

K

estou usando o JBOSS 7,
quando inicio a aplicação já é injetado o persistenceContext,
teria q alterar em tempo de execução e levaria tempo
para a verificação das tabelas, certo? ou to viajando?

K

estou usando o JBOSS 7,
quando inicio a aplicação já é injetado o persistenceContext,
teria q alterar em tempo de execução e levaria tempo
para a verificação das tabelas, certo? ou to viajando?

Hebert_Coelho

kleberdamasco:
estou usando o JBOSS 7,
quando inicio a aplicação já é injetado o persistenceContext,
teria q alterar em tempo de execução e levaria tempo
para a verificação das tabelas, certo? ou to viajando?
Em algum momento você vai ter que fazer um IF para saber qual banco utilizar. No seu persistence você já tem cadastrado um PU. Basta você criar o outro PU e a na hora que o método for chamado você iria fazer o if para saber qual dos entityManager utilizar.

K

Hebert Coelho:
kleberdamasco:
estou usando o JBOSS 7,
quando inicio a aplicação já é injetado o persistenceContext,
teria q alterar em tempo de execução e levaria tempo
para a verificação das tabelas, certo? ou to viajando?
Em algum momento você vai ter que fazer um IF para saber qual banco utilizar. No seu persistence você já tem cadastrado um PU. Basta você criar o outro PU e a na hora que o método for chamado você iria fazer o if para saber qual dos entityManager utilizar.

Vou testar dessa forma e ver como vai
reagir… depois eu digo o resultado

Valeu!

K

Hebert Coelho:
kleberdamasco:
estou usando o JBOSS 7,
quando inicio a aplicação já é injetado o persistenceContext,
teria q alterar em tempo de execução e levaria tempo
para a verificação das tabelas, certo? ou to viajando?
Em algum momento você vai ter que fazer um IF para saber qual banco utilizar. No seu persistence você já tem cadastrado um PU. Basta você criar o outro PU e a na hora que o método for chamado você iria fazer o if para saber qual dos entityManager utilizar.

Não tenho muita experiência nessa area e ainda
fico confuso…

essa é a classe:

public class ClasseTal  {

	@PersistenceContext(unitName = "baseReal")
	private EntityManager entityManager;
	
	public ClasseTal () {  
    } 
	
	@Override
	public EntityManager getEntityManager() {
		return entityManager;
	}
	
}

1 dúvida : Esse persistence nao vai ser injetado qndo eu iniciar o jboss?
2 dúvida : Qndo tem mais de um Pu, eu preciso declarar o unitname na anotação, entao como fazer a troca depois??

Hebert_Coelho

kleberdamasco:
Não tenho muita experiência nessa area e ainda
fico confuso…

essa é a classe:

public class ClasseTal  {

	@PersistenceContext(unitName = "baseReal")
	private EntityManager entityManager;
	
	public ClasseTal () {  
    } 
	
	@Override
	public EntityManager getEntityManager() {
		return entityManager;
	}
	
}

1 dúvida : Esse persistence nao vai ser injetado qndo eu iniciar o jboss?
2 dúvida : Qndo tem mais de um Pu, eu preciso declarar o unitname na anotação, entao como fazer a troca depois??

1) Você testou? O que Acontece?
2) Basta criar outro EntityManager apontando para o outro PU que você vai criar. Em algum lugar você vai colocar o IF que irá determinar qual será utilizado.

K

Deu certinho.

Obrigado pela boa vontade, e parabéns pelo seu site.

Hebert_Coelho

kleberdamasco:
Deu certinho.

Obrigado pela boa vontade, e parabéns pelo seu site.

Opa! Fico feliz por ter ajudado.
Obrigado pelo apoio.

Criado 3 de outubro de 2012
Ultima resposta 4 de out. de 2012
Respostas 9
Participantes 2