Dúvida sobre Hibernate e pedido de Sugestão

Boa noite pessoal , tudo bem?

Tenho que fazer um projeto pra faculdade e estou com problemas de conhecimento. Segue o esquema do projeto:

Ou seja, eu irei trabalhar com vários bancos de dados. A minha aplicação dirá qual banco eu terei que usar em determinado momento. Eu já havia feito cada conexao separadamente em sua classe DAO, mas ai vai as minhas dúvidas.
1.: O que seria/ O que eu poderia fazer nessa DAOFabrica? Nunca estudei o padrão Factory e nao tenho tanta noçao a respeito. Alguem me dá alguma sugestão nesse ponto?

2.: Eu estou estudando HIBERNATE e lendo a apostila da Caelum, eu faço as configuraçoes e defino por exemplo duas classes básicas:
Digamos que eu esteja trabalhando com a Classe Produtos
Então eu crio a classe:

[code]

public class HibernateFactory {
private static SessionFactory factory;
static {
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(Produto.class);
factory = cfg.buildSessionFactory();
}
public Session getSession() {
return factory.openSession();
}
}[/code]
E a classe:

Até ai Okay neh?
Bom estou usando o NetBeans, o qual ja vem com o Hibernate. Agora meu problema é o seguinte. Se eu configurar o Hibernate pro banco MySQL, eu só vou poder usar ele pro MySQL. Ai ja entrarei em contradiçao da ideia do meu projeto que é de haver comunicação com vários bancos diferentes. Existe algum modo do mesmo HIBERNATE, num mesmo projeto, eu poder setar pra ele qual banco eu estou me referindo?

aguardo ! valeww galera!
[]`s

Você não pode configurar isso na sua unidade de persistência?

Você cria várias unidades de persistencia, cada uma com a configuração que deseja utilizar (tanto de banco como de biblioteca de implementação mesmo) e no seu código, no local que você cria sua EntityManagerFactory você referencia qual a persistencia que deve ser utilizada.

Faça um teste :smiley: Acredito que não terá problema algum.

Mas com isso eu não deixaria de estar utilizando o Hibernate?

Eu poderia criar varios properties pra ele mas nao sei como se referir a cada um especificamente.
Pq como eu falei, eu tinha criado varias unidades de persistencias para cada banco, e referenciava cada classe DAO respectiva daquele banco. Mas eu não estava usando o Hibernate. Gostaria de fazer o mesmo com o hibernate e nao tenho ideia de como fzer isso "/

Até onde eu entendo não… você usa a JPA que utilizará o Hibernate para efetivamente persistir dados…

Além disso, você pode acessar o hibernate de dentro da JPA utilizando o método getDelegate do EntityManager…
Nunca cai em uma situação como a sua, mas sei que isso provavelmente deve funcionar.