Skip to content

Instantly share code, notes, and snippets.

@mp911de
Last active March 4, 2024 13:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mp911de/1d5231ab2fb64356b35130f3f41fdf8b to your computer and use it in GitHub Desktop.
Save mp911de/1d5231ab2fb64356b35130f3f41fdf8b to your computer and use it in GitHub Desktop.
package org.hibernate.bugs;
import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.archive.scan.internal.DisabledScanner;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.junit.Before;
import org.junit.Test;
/**
* This template demonstrates how to develop a standalone test case for Hibernate ORM. Although this is perfectly
* acceptable as a reproducer, usage of ORMUnitTestCase is preferred!
*/
public class ORMStandaloneTestCase {
private SessionFactory sf;
@Before
public void setup() {
StandardServiceRegistryBuilder srb = new StandardServiceRegistryBuilder()
// Add in any settings that are specific to your test. See resources/hibernate.properties for the defaults.
.applySetting("hibernate.show_sql", "true")
.applySetting("hibernate.format_sql", "true")
.applySetting("hibernate.hbm2ddl.auto", "update");
Metadata metadata = new MetadataSources(srb.build())
.addAnnotatedClass(Person.class)
.buildMetadata();
sf = metadata.buildSessionFactory();
}
// Add your tests, using standard JUnit.
@Test
public void hhh123Test() throws Exception {
}
}
package org.hibernate.bugs;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.Version;
import org.hibernate.envers.Audited;
@Entity
@Audited
public class Person {
@Id
@GeneratedValue
Long id;
String name;
@Version
Long version;
}
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.hibernate.testcasetemplate</groupId>
<artifactId>test-case-template-hibernate-orm-6</artifactId>
<version>1.0.0.Final</version>
<name>Hibernate ORM 6 Test Case Template</name>
<properties>
<version.com.h2database>2.2.224</version.com.h2database>
<version.junit>4.13.2</version.junit>
<version.org.hibernate>6.4.4.Final</version.org.hibernate>
</properties>
<dependencies>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-core</artifactId>
<version>${version.org.hibernate}</version>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-envers</artifactId>
<version>${version.org.hibernate}</version>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-testing</artifactId>
<version>${version.org.hibernate}</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${version.com.h2database}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${version.junit}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.12.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<groupId>org.hibernate.orm.tooling</groupId>
<artifactId>hibernate-enhance-maven-plugin</artifactId>
<version>${version.org.hibernate}</version>
<executions>
<execution>
<configuration>
<base>${project.build.testOutputDirectory}</base>
<dir>${project.build.testOutputDirectory}</dir>
<enableAssociationManagement>false</enableAssociationManagement>
<enableDirtyTracking>false</enableDirtyTracking>
<enableExtendedEnhancement>false</enableExtendedEnhancement>
<enableLazyInitialization>false</enableLazyInitialization>
</configuration>
<phase>test-compile</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
java.lang.IllegalArgumentException: Can not set static jakarta.persistence.metamodel.MappedSuperclassType field org.hibernate.envers.DefaultRevisionEntity_.class_ to org.hibernate.metamodel.model.domain.internal.EntityTypeImpl
at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
at java.base/jdk.internal.reflect.UnsafeQualifiedStaticObjectFieldAccessorImpl.set(UnsafeQualifiedStaticObjectFieldAccessorImpl.java:81)
at java.base/java.lang.reflect.Field.set(Field.java:799)
at org.hibernate.metamodel.internal.MetadataContext.injectField(MetadataContext.java:744)
at org.hibernate.metamodel.internal.MetadataContext.populateStaticMetamodel(MetadataContext.java:659)
at org.hibernate.metamodel.internal.MetadataContext.wrapUp(MetadataContext.java:335)
at org.hibernate.metamodel.model.domain.internal.JpaMetamodelImpl.processJpa(JpaMetamodelImpl.java:524)
at org.hibernate.metamodel.model.domain.internal.MappingMetamodelImpl.finishInitialization(MappingMetamodelImpl.java:214)
at org.hibernate.internal.SessionFactoryImpl.initializeMappingModel(SessionFactoryImpl.java:364)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:293)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:450)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment