During Springboot 3 and hibernate6 migration, during application startup facing below error
Caused by: jakarta.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is java.lang.IllegalArgumentException: Expecting BasicPluralJavaType for array class [Ljava.lang.String;, but got com.vladmihalcea.hibernate.type.array.internal.StringArrayTypeDescriptor@38ffba03
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:421)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:364)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782)
... 16 common frames omitted
Caused by: java.lang.IllegalArgumentException: Expecting BasicPluralJavaType for array class [Ljava.lang.String;, but got com.vladmihalcea.hibernate.type.array.internal.StringArrayTypeDescriptor@38ffba03
at org.hibernate.loader.ast.internal.MultiKeyLoadHelper.resolveArrayJdbcMapping(MultiKeyLoadHelper.java:46)
at org.hibernate.loader.ast.internal.MultiIdEntityLoaderArrayParam.(MultiIdEntityLoaderArrayParam.java:58)
at org.hibernate.persister.entity.AbstractEntityPersister.buildMultiIdLoader(AbstractEntityPersister.java:892)
at org.hibernate.persister.entity.AbstractEntityPersister.prepareLoaders(AbstractEntityPersister.java:3420)
at org.hibernate.metamodel.model.domain.internal.MappingMetamodelImpl.finishInitialization(MappingMetamodelImpl.java:206)
at org.hibernate.internal.SessionFactoryImpl.initializeMappingModel(SessionFactoryImpl.java:364)
at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:293)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:450)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1507)
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:388)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409)
... 20 common frames omitted
Tried by adding below dependencies:
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-60</artifactId>
<version>2.21.1</version>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-core</artifactId>
<version>6.4.4.Final</version>
</dependency>
anything else need to be added?
Replacing com.vladmihalcea:hibernate-types-60:2.21.1 with
'io.hypersistence:hypersistence-utils-hibernate-63:3.7.3' worked for me.
Ref-: https://github.com/vladmihalcea/hypersistence-utils/issues/698
we have to completely remove this com.vladmihalcea:hibernate-types-60:2.21.1 and use io.hypersistence:hypersistence-utils-hibernate-63:3.7.3
Try migrating to hypersistence-utils. It's the successor of hibernate-types and fixed a similar issue for me.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With