oi galera,
queria pedir a ajuda de vocês… quem não tiver viajado este feriado pode ajudar-me quebrando a cuca aki 
estou desenvolvendo uma aplicação desktop e tenho uma dúvida sobre qual a melhor forma de administrar o EntityManagerFactory, o EntityManager e o EntityTransaction…
eu já tinha conhecimento (por causa do meu estágio) para fazer uma aplicação web usando JBOSS e EJB
então resolvi usar JPA para ajudar no banco de dados… mas por se tratar de desktop não usarei JBOSS… então terei que criar as transactions na mão…
dae queria saber se o q eu pretendo implementar é adequado:
pensei em ter um “ManagerFactory” q é inicializado no começo da aplicação e ele cria uma EntiTyManagerFactory (q será única durante toda a aplicação)
dae eu acesso cada Manager individual pelo factory, passando o EntityManagerFactory como parametro (i.e, um getManagerX seria algo como return new ManagerX(entityManagerFactory); )
e cada método dentro de cada Manager individual usa o EntityManagerFactory para:
- criar um EntityManager
- criar uma EntityTransaction
- fazer begin e commit da transaction
- fechar o EntityManager
aí minha dúvida é se isso é o mais adequado ou se eu devo colocar o EntityManager tb como algo único q será carregado durante toda a aplicação e cada metodo individual cria apenas as transactions qdo precisarem…
e se tem jeito de eliminar essas transactions (eu não usava transaction com oJBOSS… ele fazia tudo automático)
uma outra coisa q eu não gosto é q geralmente as operações utilizam um método apenas do Manager… e os “getManagerX” sempre criam novas instancias desses Managers… ou seja… para cada vez q eu quiser executar apenas um método eu tenho q criar uma nova instancia do Manager Especifico…
uma opção q eu teria seria o ManagerFactory guardar instancias de cada Manager… mas não sei se isso consumiria muita memória… e pensei tb num meio termo q seria o ManagerFactory ter uma lista com os últimos 5 ManagersUtilizados… uma espécie de “cache de Manager”…
hum… tive uma idéia agora q seria os métodos dos Managers serem estáticos… acho q pra esse problema dos managers parece ser a melhor solução mesmo… q assim eu não crio instancias q ocupariam a memória desnecessariamente…
bom… de qqler forma espero a ajuda das feras q eu sei q têm por aki… e o problema dos EntityFactory, EntityManager e EntityTransaction eu não sei como resolver… principalmente pq eu acho q obter o EntityManager no começo de cada método torna a execução dos métodos lenta…
caso seja complexo de entender o q falei eu coloco alguns exemplos…
qqler ajuda será bem vinda
e agradeço desde já
abraços
