我有一个问题在春天与自动装配与原型的范围的豆.. 所以基本上我正在写一个代码是弹簧与JPA.So我autowiring我的实体经理在我的DAO层。我正在使用@configuraion Annotation加载一个类的entitymanager。春天的自动装配与原型的豆范围
@Configuration
public class DALConfigurationLoader {
@Bean
@Scope("prototype")
public EntityManager getEntityManager() {
}
当我这样做,我期待每一个请求它应该得到一个新的bean。
@Component
public class OfferPriceDomainDAOImpl {
@Autowired
private EntityManager entityManager;
public OfferPrice getOfferPrice(String offer_Price_Id) throws DataAccessException{
//use entitymanager here
}
}
在这种情况下,它是所有请求的单一实体管理器,它是wrong.i希望每个方法应根据JPA规范得到一个新的实体管理器。随着每一个新的请求应该处理新的实体管理器...我怎么能自动装配与原型的范围豆..
我真的很感激,如果有人能回答我的问题..
感谢, 姆斯瓦蒂
我不能使用@PersistenceContet结合的方式,我们创建实体管理我的不同。这是我们种按照我公司的规则...的Dbonfigloader一些事情,我们加载实体管理器,它自动装配到DAO层.... DAO lyer对象在bizz层自动装配...所以创建了dao的singelton对象..我只想要一个具有多个实体管理器的dao对象... – swati 2013-02-14 06:09:01
所以基本上有多少次我称之为方法在道(这是singelton)多次实体经理必须创建..这是我的目标... – swati 2013-02-14 06:10:03
如果你只是“种”遵守规则,那么我建议这是打破它的时间。这是'@ PersistenceContext'存在的一个确切问题,它可以非常好地完成并且只需很少的工作。否则,就我所知,管理EntityManager生命周期完全取决于您。做这件事的难办法是将你的DAO注入一个EntityManager工厂,然后为每个方法调用打开/关闭一个EntityManager。如果您使用的是Spring,我不知道这将如何处理Spring的事务管理。 – 2013-02-14 06:41:00