Estou tentando usar o org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy
projeto 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.getPersistenceManager
seria mais adequado às minhas necessidades? Pode getObject
retornar nulo?
192
Respostas:
As respostas estão disponíveis diretamente na documentação
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.
Os DAOs poderiam alternar perfeitamente entre um JNDI PersistenceManagerFactory e esse proxy para um PersistenceManagerFactory local.
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.
fonte