[RESOLVIDO]Trabalhar com dois PersistenceContext[RESOLVIDO]

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.

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

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?

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?

[quote=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?[/quote]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.

[quote=Hebert Coelho][quote=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?[/quote]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.[/quote]

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

Valeu!

[quote=Hebert Coelho][quote=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?[/quote]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.[/quote]

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??

[quote=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??
[/quote]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.

Deu certinho.

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

[quote=kleberdamasco]Deu certinho.

Obrigado pela boa vontade, e parabéns pelo seu site.[/quote]Opa! Fico feliz por ter ajudado.
Obrigado pelo apoio.