2010-09-18 63 views
1

是否有可能Autowire JDO PersistenceManager是否可以自动装载JDO PersistenceManager或只有PersistenceManagerFactory?

在下面的示例中,只有PersistenceManagerFactoryAutowired,而PersistenceManager是在每次操作之前使用getter和utility方法获得的。

import org.springframework.orm.jdo.PersistenceManagerFactoryUtils; 

@Service 
public class MainServiceImpl implements MainService 
{ 

    @Autowired 
    private PersistenceManagerFactory pmf; 

    private PersistenceManager pm; 

    public void setPersistenceManager(PersistenceManager pm) 
    { 
     this.pm = pm; 
    } 

    public void setPmf(PersistenceManagerFactory pmf) 
    { 
     this.pmf = pmf; 
    } 

    public PersistenceManagerFactory getPmf() 
    { 
     return pmf; 
    } 

    public PersistenceManager getPersistenceManager() 
    { 
     return PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true); 
    } 

} 

回答

0

看起来不太可能。

如果你看看Spring JDO classes overview,你会看到没有FactoryBean返回一个PersistenceManager。

当然,您可以很容易地implement a factory bean yourself,它具有PersistenceManagerFactory类型的依赖关系并返回一个PersistenceManager。

您可能希望在内部使用TransactionAwarePersistenceManagerFactoryProxy如果你总是希望自动装配当前线程绑定的PersistenceManager(这里是从JavaDoc中摘录)

代理为目标JDO 的PersistenceManagerFactory,返回 当前线装 的PersistenceManager(Spring管理的事务 或的PersistenceManager 单 OpenPersistenceManagerInView 的PersistenceManager)上 getPersistenceManager(),如果有的话。

相关问题