Hi,
Here is my configuration: Version 3.1.0 of Springboot (reactive), native generation, MacOS ARM-M1, OpenJDK Runtime Environment GraalVM CE 22.3.2 (build 17.0.7+7-LTS)
When I compile to native mode (gradle nativeCompile
), and run the app, I get the following stack trace.
It appears that everything is correct when I downgrade the Hibernate ORM version to 6.1.7.Final
.
Full source code is available here: https://github.com/operrin/orm-native
Thanks
2023-05-24T09:22:49.067+02:00 ERROR 34835 --- [ main] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: Default-resolver threw exception
2023-05-24T09:22:49.067+02:00 WARN 34835 --- [ main] w.s.c.ServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory': Default-resolver threw exception
2023-05-24T09:22:49.068+02:00 INFO 34835 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2023-05-24T09:22:49.068+02:00 ERROR 34835 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory': Default-resolver threw exception
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1770) ~[intervenant-service:6.0.9]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598) ~[intervenant-service:6.0.9]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[intervenant-service:6.0.9]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[intervenant-service:6.0.9]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[intervenant-service:6.0.9]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[intervenant-service:6.0.9]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[intervenant-service:6.0.9]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1156) ~[intervenant-service:6.0.9]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:931) ~[intervenant-service:6.0.9]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:608) ~[intervenant-service:6.0.9]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[intervenant-service:3.1.0]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:733) ~[intervenant-service:3.1.0]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:435) ~[intervenant-service:3.1.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) ~[intervenant-service:3.1.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1305) ~[intervenant-service:3.1.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1294) ~[intervenant-service:3.1.0]
at org.miage.intervenantservice.IntervenantServiceApplication.main(IntervenantServiceApplication.java:10) ~[intervenant-service:na]
Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Default-resolver threw exception
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:223) ~[na:na]
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveDefaultableStrategy(StrategySelectorImpl.java:180) ~[na:na]
at org.hibernate.boot.internal.MetadataBuilderImpl$MetadataBuildingOptionsImpl.<init>(MetadataBuilderImpl.java:750) ~[na:na]
at org.hibernate.boot.internal.MetadataBuilderImpl.<init>(MetadataBuilderImpl.java:140) ~[na:na]
at org.hibernate.boot.MetadataSources.getMetadataBuilder(MetadataSources.java:163) ~[na:na]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:269) ~[intervenant-service:6.2.2.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:190) ~[intervenant-service:6.2.2.Final]
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) ~[na:na]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:376) ~[intervenant-service:6.0.9]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[intervenant-service:6.0.9]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[intervenant-service:6.0.9]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:352) ~[intervenant-service:6.0.9]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1816) ~[intervenant-service:6.0.9]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1766) ~[intervenant-service:6.0.9]
... 16 common frames omitted
Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Could not instantiate named strategy class [org.hibernate.boot.model.relational.ColumnOrderingStrategyStandard]
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:244) ~[na:na]
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveDefaultableStrategy(StrategySelectorImpl.java:180) ~[na:na]
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveDefaultableStrategy(StrategySelectorImpl.java:167) ~[na:na]
at org.hibernate.boot.internal.MetadataBuilderImpl$MetadataBuildingOptionsImpl$2.call(MetadataBuilderImpl.java:756) ~[na:na]
at org.hibernate.boot.internal.MetadataBuilderImpl$MetadataBuildingOptionsImpl$2.call(MetadataBuilderImpl.java:753) ~[na:na]
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:220) ~[na:na]
... 29 common frames omitted
Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Could not instantiate named strategy class [org.hibernate.boot.model.relational.ColumnOrderingStrategyStandard]
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.lambda$static$0(StrategySelectorImpl.java:41) ~[na:na]
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:240) ~[na:na]
... 34 common frames omitted
Caused by: java.lang.InstantiationException: org.hibernate.boot.model.relational.ColumnOrderingStrategyStandard
at java.base@17.0.7/java.lang.Class.newInstance(DynamicHub.java:639) ~[intervenant-service:na]
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.lambda$static$0(StrategySelectorImpl.java:37) ~[na:na]
... 35 common frames omitted
Caused by: java.lang.NoSuchMethodException: org.hibernate.boot.model.relational.ColumnOrderingStrategyStandard.<init>()
at java.base@17.0.7/java.lang.Class.getConstructor0(DynamicHub.java:3585) ~[intervenant-service:na]
at java.base@17.0.7/java.lang.Class.newInstance(DynamicHub.java:626) ~[intervenant-service:na]
... 36 common frames omitted
Comment From: snicoll
It's likely to be a duplicate of several issues reported against the Hibernate 6.2 upgrade. Ping @sdeleuze
Comment From: sdeleuze
It is indeed fixed by upgrading to Native Build Tools 0.9.22 via https://github.com/graalvm/native-build-tools/pull/432 + other fixes that will be part of Spring Framework 6.0.10, Spring Boot 3.1.1 and GraalVM reachability metadata 0.3.1.
Comment From: operrin
Hi,
I've just tested with newly released 3.1.1, with GraalVM 17.0.7+8.1, and still the same problem (6.2.5 for Hibernate).
Comment From: operrin
Works with native 0.9.23 (not bundled with current start.spring.io 3.1.1 + native) Thanks
Comment From: snicoll
I've just pushed an update on start.spring.io to use 0.9.23 with 3.1.1. I've also created https://github.com/spring-io/start.spring.io/issues/1227 to automate it.