Ola pessoal estou com uma dúvida estou ainda engatinhando no Hibernate e me deparei com este problema, estou fazendo um projeto para estudar mais sobre o Hibernate entao nesse projeto tenho 2 telas de login que faz uma consulta com o banco A e se ele se logar cai numa tela de pesquisa que no caso ele pesquisa em um banco B ai que estra minha dúvida pq no persistence.xml tenho isso
[list]dois persistence Unit dentro de um persistence.xml[/list]
[list]dois LocalContainerEntityManagerFactoryBean dentro do seu applicationContext[/list]
[list]dois transaction manager caso queira que o spring faça controle dos dois[/list]
Depois disso, basta injetar nos DAOs o entityManagerFactory que vc deseja utilizar
Esse é o mapeamento de uma entidade… eu quero saber como que vc injeta o EntityManager nas suas classes…
Para todos os casos… na configuraçao do seu persistence-unit… vc consegue setar as entidades que vc quer utilizar em cada uma delas… e para utilizar em uma classe… basta vc espeficiar o persistence-unit-name que vc declarou no seu persistence.xml
Ok… no seu bean,… vc espeficicou o id entityManager factory e setou o persistenceUnitName com o valor nomedobanco … estou supondo que uma das unidades de persistencia é esse…
agora… basta criar outrro entitymanager igual a esse mas com o persistenceUnitName com o valor do outro… troca o id do spring também senão vai dar pau…
A partir daí… basta vc injetar em alguma classe que vc for utilizar, seja por spring, seja por anotação de persistencia…
Então… só para completar: de que forma vc utiliza o EntityManager? vc injeta ele nas classes através do spring ou vc utiliza a annotation @PersistenceContext ?
Certo a estrutura esta criado mas não consigo entender como injetar a dependencia do bancoA e do bancoB como falo para ele, consulte neste banco e agora neste?
Então… tá ligado a annotation @PersistenceContext? Então… ele tem um campo chamado unitName … esse unitName deve ser preenchido com o unitname que vc especificou nas configurações no persistence.xml …
Você não especifica o unitName quando tem apenas uma unidade de persistência porque realmente não precisa quando se tem apenas um… mas nesse caso vai dar pau se vc não especificar…