Não tenho certeza se eu entendo TransactionAwarePersistenceManagerFactoryProxy


192

Estou tentando usar o org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxyprojeto no meu Spring, mas não tenho certeza de como usá-lo ou se é exatamente o que estou procurando. Sei que isso pode ajudar a fazer meus DAOs funcionarem com um JDO simples PersistenceManagerFactory. Outra pergunta é: o que acontece se o proxy não for feito corretamente? Ainda posso usá-lo para acessar minha fábrica e criar um gerenciador de persistência com reconhecimento de transação? Se o objeto gerenciado pela fábrica é um singleton, isso muda as coisas? Por que não acessar apenas o PersistenceManagerFactory diretamente? Talvez PersistenceManagerFactoryUtils.getPersistenceManagerseria mais adequado às minhas necessidades? Pode getObjectretornar nulo?


193
Ri muito! Desculpe, mas não posso evitar. Eu quase chorei quando vi o nome do objeto.
— Eric des Courtis

133
E é por isso, queridos filhos, que Java deve parar de tomar drogas.
— Griwes

48
Você sabe que está no mundo Java há muito tempo, quando nomes como esse não parecem tão irracionais ...!
— 27713 Brian

27
Rapazes. Ei pessoal, ouçam. Você está cometendo o erro do novato novamente. O Spring Framework não é Java e o Java não é o Spring framework. Não os confunda.
— Torben

49
Com relação à pergunta original: esse é o tipo de pesca à linha de alta qualidade que eu realmente aprecio.
— Torben

Respostas:


20

As respostas estão disponíveis diretamente na documentação

Sei que isso pode ajudar a fazer meus DAOs funcionarem com um JDO PersistenceManagerFactory simples.

Sim. O proxy TransactionAwarePersistenceManagerFactoryProxy permite que os DAOs trabalhem com uma referência simples JDO PersistenceManagerFactory, enquanto ainda participam do gerenciamento de transações e recursos da Spring (ou de um servidor J2EE). Você certamente pode usá-lo em seu aplicativo. Mas, sem conhecer exatamente suas necessidades, não podemos confirmar mais.

Ainda posso usá-lo para acessar minha fábrica e criar um gerenciador de persistência com reconhecimento de transação

Os DAOs poderiam alternar perfeitamente entre um JNDI PersistenceManagerFactory e esse proxy para um PersistenceManagerFactory local.

Se o objeto gerenciado pela fábrica é um singleton, isso muda as coisas? Por que não acessar apenas o PersistenceManagerFactory diretamente?

Geralmente, é preferível gravar seus DAOs baseados em JDO com o JdoTemplate da Spring, oferecendo benefícios como exceções consistentes de acesso a dados em vez de JDOExceptions na camada DAO. No entanto, o gerenciamento de recursos e transações do Spring (e Injeção de Dependências) também funcionará para DAOs gravados na API JDO simples.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.