Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
lazy init=";“真的”;从Spring 3.2开始,在LocalContainerEntityManagerFactoryBean上被忽略_Spring_Hibernate_Spring 3 - Fatal编程技术网

lazy init=";“真的”;从Spring 3.2开始,在LocalContainerEntityManagerFactoryBean上被忽略

lazy init=";“真的”;从Spring 3.2开始,在LocalContainerEntityManagerFactoryBean上被忽略,spring,hibernate,spring-3,Spring,Hibernate,Spring 3,从Spring 3.2开始,LocalContainerEntityManagerFactoryBean上的Set lazy init=“true”将被忽略。我已经将一个应用程序从Spring3.0移植到3.2。LocalContainerEntityManagerFactoryBean的lazy init在Spring3.0中可以正常工作,但在3.2中不行 <bean id="entityManagerFactory" class="de.gillardon.base.hiber

从Spring 3.2开始,LocalContainerEntityManagerFactoryBean上的Set lazy init=“true”将被忽略。我已经将一个应用程序从Spring3.0移植到3.2。LocalContainerEntityManagerFactoryBean的lazy init在Spring3.0中可以正常工作,但在3.2中不行

<bean id="entityManagerFactory" 
   class="de.gillardon.base.hibernate.internal.EntityManagerFactoryBean" 
   lazy-init="true">
    <property name="persistenceProviderClass" 
              value="org.hibernate.ejb.HibernatePersistence"/>
    <property name="dataSource" ref="dataSource"/>
    <property name="jpaProperties" ref="jpaProperties"/>
</bean>

当LocalContainerEntityManagerFactoryBean实现LoadTimeWeaverAware时,即使lazy init=true,它也会被初始化。这是预期的行为还是错误?我在文档中找不到有关此行为的任何提示。

lazy init
仅将bean的初始化延迟到从上下文请求它们的那一刻。通过引用它的bean,或者当需要自动连接时(例如使用
@PersistentContext
)。确保情况不是这样,我知道。但是该应用程序在Spring3.0中按预期工作。看来这是罪魁祸首。您可能希望向其添加注释,或者更好地创建另一个JIRA问题,提及可能需要在API或文档中指定的lazy init副作用。
org.springframework.context.support.AbstractApplicationContext.
finishBeanFactoryInitialization(ConfigurableListableBeanFactory)
...
// Initialize LoadTimeWeaverAware beans early to allow for registering their transformers early.
String[] weaverAwareNames = beanFactory.getBeanNamesForType(LoadTimeWeaverAware.class, false, false);
for (String weaverAwareName : weaverAwareNames) {
    getBean(weaverAwareName);
}