Я пытаюсь использовать org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy
в моем проекте Spring, но я не уверен, как его использовать или это именно то, что я ищу. Я понимаю, что это может помочь заставить мои DAO работать с простым JDO PersistenceManagerFactory
. Другой вопрос: что произойдет, если прокси-сервер не будет создан правильно? Могу ли я использовать его для доступа к factory для создания диспетчера сохранения транзакций? Если объект, управляемый factory, является одноэлементным, это что-то меняет? Почему бы просто не получить доступ к PersistenceManagerFactory напрямую? Может быть, PersistenceManagerFactoryUtils.getPersistenceManager
больше подходит для моих нужд? Может getObject
вернуть null?
Не понимаю, понимаю ли я TransactionAwarePersistenceManagerFactoryProxy
Ответ 1
Ответы доступны непосредственно в документации
Я понимаю, что это может помочь заставить мои DAO работать с простым JDO PersistenceManagerFactory.
Да. Прокси TransactionAwarePersistenceManagerFactoryProxy позволяет DAO работать с простой ссылкой JDO PersistenceManagerFactory, все еще участвуя в управлении ресурсами и транзакциями Spring (или J2EE-сервера). Вы можете использовать его в своем приложении. Но, не зная ваших конкретных потребностей, мы больше не можем подтвердить.
Могу ли я использовать его для доступа к моему factory для создания диспетчера сохраняемых транзакций
DAO могут легко переключаться между JNDI PersistenceManagerFactory и этим прокси для локального PersistenceManagerFactory.
Если объект, управляемый factory, является одиночным, это меняет ситуацию? Почему бы просто не получить доступ к PersistenceManagerFactory напрямую?
Обычно желательно записывать DAO на основе JDO с помощью Spring JdoTemplate, предлагая такие преимущества, как последовательные исключения доступа к данным, а не JDOExceptions на уровне DAO. Однако управление ресурсами и транзакциями Spring (и Injection Dependency) будет работать для DAO, написанных против простого JDO API.