PersistenceManagerFactory

PersistenceManagerFactory

是否可以Autowire JDO PersistenceManager

在下面的示例中,只有PersistenceManagerFactoryAutowired,而PersistenceManager是在每次操作之前使用吸气剂和实用程序方法获得的。

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);
    }

}

最佳答案

看起来不太可能。

如果查看Spring JDO classes overview,您会看到不是一个返回PersistenceManager的FactoryBean。

当然,您可以轻松地implement a factory bean yourself具有PersistenceManagerFactory类型的依赖项并返回PersistenceManager。

如果您始终想自动连接当前线程绑定的PersistenceManager,则可能需要在内部使用TransactionAwarePersistenceManagerFactoryProxy(这是JavaDoc的摘录)


  目标JDO的代理
  PersistenceManagerFactory,返回
  当前线程绑定
  PersistenceManager(由Spring管理
  事务性PersistenceManager或
  单身
  OpenPersistenceManagerInView
  PersistenceManager)
  getPersistenceManager()(如果有)。

07-24 13:08