Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Hibernate integration throws NoSuchMethodError for org.hibernate.cfg.AccessType in v9.0.0-M2 #951

@anil-subudhi

Description

@anil-subudhi

Expected Behavior

Library: grails-datastore-gorm-hibernate5-9.0.0.pom

The type casting should be resolved from javax.persistence.AccessType to jakarta.persistence.AccessType while calling
'org.hibernate.cfg.AccessType org.hibernate.cfg.AccessType.getAccessStrategy(jakarta.persistence.AccessType)'

Actual Behaviour

Hibernate integration throws NoSuchMethodError

Caused by: java.lang.NoSuchMethodError: 'org.hibernate.cfg.AccessType org.hibernate.cfg.AccessType.getAccessStrategy(jakarta.persistence.AccessType)'
https://github.com/grails/gorm-hibernate5/blob/v9.0.0-M2/grails-datastore-gorm-hibernate/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java#L2656

AccessType methods are below which doesn't contain overloaded method for org.hibernate.cfg.AccessType.getAccessStrategy(jakarta.persistence.AccessType)

This leads to failure with NoSuchMethodError

AccessType methods:

[public static org.hibernate.cfg.AccessType[] org.hibernate.cfg.AccessType.values(), public static org.hibernate.cfg.AccessType org.hibernate.cfg.AccessType.valueOf(java.lang.String), public java.lang.String org.hibernate.cfg.AccessType.getType(), public static org.hibernate.cfg.AccessType org.hibernate.cfg.AccessType.getAccessStrategy(java.lang.String), public static org.hibernate.cfg.AccessType org.hibernate.cfg.AccessType.getAccessStrategy(javax.persistence.AccessType), public final java.lang.String java.lang.Enum.name(), public final boolean java.lang.Enum.equals(java.lang.Object), public java.lang.String java.lang.Enum.toString(), public final int java.lang.Enum.hashCode(), public int java.lang.Enum.compareTo(java.lang.Object), public final int java.lang.Enum.compareTo(java.lang.Enum), public static java.lang.Enum java.lang.Enum.valueOf(java.lang.Class,java.lang.String), public final java.util.Optional java.lang.Enum.describeConstable(), public final java.lang.Class java.lang.Enum.getDeclaringClass(), public final int java.lang.Enum.ordinal(), public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException, public final void java.lang.Object.wait() throws java.lang.InterruptedException, public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException, public final native java.lang.Class java.lang.Object.getClass(), public final native void java.lang.Object.notify(), public final native void java.lang.Object.notifyAll()]

Caused by: java.lang.NoSuchMethodError: 'org.hibernate.cfg.AccessType org.hibernate.cfg.AccessType.getAccessStrategy(jakarta.persistence.AccessType)'
at org.grails.orm.hibernate.cfg.GrailsDomainBinder.bindProperty(GrailsDomainBinder.java:2656)
at org.grails.orm.hibernate.cfg.GrailsDomainBinder.createProperty(GrailsDomainBinder.java:2313)
at org.grails.orm.hibernate.cfg.GrailsDomainBinder.bindComponentProperty(GrailsDomainBinder.java:2281)
at org.grails.orm.hibernate.cfg.GrailsDomainBinder.bindCompositeId(GrailsDomainBinder.java:1854)
at org.grails.orm.hibernate.cfg.GrailsDomainBinder.bindIdentity(GrailsDomainBinder.java:1814)
at org.grails.orm.hibernate.cfg.GrailsDomainBinder.bindRootPersistentClassCommonValues(GrailsDomainBinder.java:1776)
at org.grails.orm.hibernate.cfg.GrailsDomainBinder.bindRoot(GrailsDomainBinder.java:1401)
at org.grails.orm.hibernate.cfg.GrailsDomainBinder.contribute(GrailsDomainBinder.java:161)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:292)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:86)
at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:479)
at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:85)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:709)
at org.grails.orm.hibernate.cfg.HibernateMappingContextConfiguration.buildSessionFactory(HibernateMappingContextConfiguration.java:287)
at org.grails.orm.hibernate.connections.HibernateConnectionSourceFactory.create(HibernateConnectionSourceFactory.java:86)
at org.grails.orm.hibernate.connections.AbstractHibernateConnectionSourceFactory.create(AbstractHibernateConnectionSourceFactory.java:39)
at org.grails.orm.hibernate.connections.AbstractHibernateConnectionSourceFactory.create(AbstractHibernateConnectionSourceFactory.java:23)
at org.grails.datastore.mapping.core.connections.AbstractConnectionSourceFactory.create(AbstractConnectionSourceFactory.java:64)
at org.grails.datastore.mapping.core.connections.AbstractConnectionSourceFactory.create(AbstractConnectionSourceFactory.java:52)
at org.grails.datastore.mapping.core.connections.ConnectionSourcesInitializer.create(ConnectionSourcesInitializer.groovy:24)
at org.grails.orm.hibernate.HibernateDatastore.(HibernateDatastore.java:212)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:209)

Steps To Reproduce

  1. Create the grails 7.0.0-M1 app
  2. Enable hibernate feature
  3. Follow the GORM steps to add domain https://docs.grails.org/7.0.0-M1/guide/single.html#whatsNew
  4. Application start ./gradlew bootRun

Environment Information

| Grails Version: 7.0.0-M1
| JVM Version: 17.0.9

Gradle 8.12

OS: Mac OS X 15.1.1 x86_64

Example Application

No response

Version

7.0.0-M1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions