2010-09-18 45 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(),如果有的話。

相關問題