Intentando actualizar a hibernate 5.2.9 desde 4.3.11 . Actualmente usando la API nativa de hibernación. Después de agregar la dependencia en pom.xml, aparece el siguiente error al ejecutar mis pruebas de unidades:
Dependencia insatisfecha expresada a través del campo 'sessionFactory'; la excepción anidada es org.springframework.beans.factory.BeanCreationException: error al crear el bean con el nombre 'sessionFactory' definido en el recurso de ruta de clase [testApplicationContext.xml]: la invocación del método init falló; la excepción anidada es org.hibernate.loader.MultipleBagFetchException: no se pueden recuperar varias maletas simultáneamente
Tengo un testApplicationContext.xml con lo siguiente:
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="packagesToScan" value="org.xxxx.xxxx.xxxx.model"/> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.use_sql_comments">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" />Actualicé sessionFactory y transactionManager de hibernate4 a hibernate5.
pom.xml :
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.9.Final</version> </dependency>Por lo que puedo decir, el mensaje de error implica que hay un problema al cargar varias colecciones cargadas con entusiasmo. Sin embargo, entiendo por esto que el uso de anotaciones específicas de hibernación y versiones más nuevas de hibernación admiten este caso de uso.
¿Alguien puede ayudar por favor? Gracias
Este problema se ha resuelto ahora.
En un par de mis entidades, estaba usando una List para @OneToMany .
Cambiar a Set resultó en que el error desapareciera. Todavía no estoy seguro de por qué esto funcionó/fue compatible con Hibernate 4.3.11 y no con 5.2.9. Actualizaré esta respuesta si encuentro más información.
Puede encontrar más información con respecto a List vs Set aquí y aquí .