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?

2

There are 2 best solutions below

0
Mike Chernev On

Try migrating to hypersistence-utils. It's the successor of hibernate-types and fixed a similar issue for me.

0
Praveen Reddy On

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