Add h8-preview module: hibernate-demo suite against Hibernate 8.0.0.Beta3 and Jakarta Persistence 4.0.0-M7

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Gth99spB1CzQmBFofXmU4Z
This commit is contained in:
Claude
2026-09-28 08:42:17 +00:00
parent 8568c0ce6c
commit 833f3e1c31
35 changed files with 769 additions and 0 deletions
@@ -0,0 +1,7 @@
# 01-exception-contracts (Hibernate ORM 7.4.5.Final, JDK 25)
unbound parameter : threw org.hibernate.QueryParameterException
null parameter : returned 0
type mismatch : threw org.hibernate.query.QueryArgumentException
unique violation : threw org.hibernate.exception.ConstraintViolationException <- org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException
unknown parameter : threw java.lang.IllegalArgumentException <- org.hibernate.query.UnknownParameterException
named query, no row: 0 rows
@@ -0,0 +1,7 @@
# 01-exception-contracts (Hibernate ORM 8.0.0.Beta3, JDK 25)
unbound parameter : threw org.hibernate.QueryParameterException
null parameter : returned 0
type mismatch : threw org.hibernate.query.QueryArgumentException
unique violation : threw org.hibernate.exception.ConstraintViolationException <- org.h2.jdbc.JdbcBatchUpdateException
unknown parameter : threw java.lang.IllegalArgumentException <- org.hibernate.query.UnknownParameterException
named query, no row: 0 rows
+4
View File
@@ -0,0 +1,4 @@
# 02-flush-order (Hibernate ORM 7.4.5.Final, JDK 25)
default : [Parent, Child, Parent, Child]
hibernate.flush.queue.type=legacy: [Parent, Child, Parent, Child]
hibernate.flush.queue.type=graph : [Parent, Child, Parent, Child]
+4
View File
@@ -0,0 +1,4 @@
# 02-flush-order (Hibernate ORM 8.0.0.Beta3, JDK 25)
default : [Parent, Child]
hibernate.flush.queue.type=legacy: [Parent, Child, Parent, Child]
hibernate.flush.queue.type=graph : [Parent, Child]
@@ -0,0 +1,2 @@
# 03-mutating-named-query (Hibernate ORM 7.4.5.Final, JDK 25)
session factory built; createNamedQuery(..).executeUpdate() returned 0
@@ -0,0 +1,2 @@
# 03-mutating-named-query (Hibernate ORM 8.0.0.Beta3, JDK 25)
threw java.lang.IllegalArgumentException <- org.hibernate.query.IllegalSelectQueryException :: Expecting a SELECT Query [org.hibernate.query.sqm.tree.spi.select.SqmSelectStatement], but found org.hibernate.query.sqm.tree.spi.update.SqmUpdateStatement [update MutatingNamedQueryEntity m set m.name = :name]
+49
View File
@@ -0,0 +1,49 @@
# compile-errors (javac --release 25 -Xlint:removal -Xlint:deprecation; files in src/broken/)
--- UsesTransformers on h7
UsesTransformers.java:14: warning: [deprecation] Transformers in org.hibernate.transform has been deprecated
.setResultTransformer(Transformers.aliasToBean(Dto.class)).list();
UsesTransformers.java:14: warning: [deprecation] <S>setResultTransformer(ResultTransformer<S>) in NativeQuery has been deprecated
.setResultTransformer(Transformers.aliasToBean(Dto.class)).list();
where S is a type-variable:
S extends Object declared in method <S>setResultTransformer(ResultTransformer<S>)
Note: src/broken/UsesTransformers.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 warnings
--- UsesTransformers on h8
UsesTransformers.java:3: error: package org.hibernate.transform does not exist
import org.hibernate.transform.Transformers;
UsesTransformers.java:14: error: cannot find symbol
.setResultTransformer(Transformers.aliasToBean(Dto.class)).list();
symbol: variable Transformers
location: class UsesTransformers
2 errors
--- UsesReplicate on h7
UsesReplicate.java:8: warning: [deprecation] ReplicationMode in org.hibernate has been deprecated
s.replicate(detached, ReplicationMode.OVERWRITE);
UsesReplicate.java:8: warning: [deprecation] replicate(Object,ReplicationMode) in Session has been deprecated
s.replicate(detached, ReplicationMode.OVERWRITE);
2 warnings
--- UsesReplicate on h8
UsesReplicate.java:1: error: cannot find symbol
import org.hibernate.ReplicationMode;
symbol: class ReplicationMode
location: package org.hibernate
UsesReplicate.java:8: error: cannot find symbol
s.replicate(detached, ReplicationMode.OVERWRITE);
symbol: variable ReplicationMode
location: class UsesReplicate
2 errors
--- StatelessInsertReturnsId on h7
--- StatelessInsertReturnsId on h8
StatelessInsertReturnsId.java:7: error: incompatible types: void cannot be converted to Object
Object id = ss.insert(new com.ankurm.h8.Author("A", "[email protected]"));
1 error
--- QueryVariable on h7
--- QueryVariable on h8
QueryVariable.java:9: warning: [removal] getResultList() in Query has been deprecated and marked for removal
return q.getResultList().size();
where T is a type-variable:
T extends Object declared in interface Query
1 warning
--- TypedQueryVariable on h7
--- TypedQueryVariable on h8
@@ -0,0 +1,5 @@
# binary-compatibility (BinaryProbe compiled against one Hibernate, run on the other)
--- compiled on h7, run on h8
Exception in thread "main" java.lang.NoSuchMethodError: 'org.hibernate.query.Query org.hibernate.Session.createQuery(java.lang.String, java.lang.Class)'
--- compiled on h8, run on h7
Exception in thread "main" java.lang.NoSuchMethodError: 'org.hibernate.query.SelectionQuery org.hibernate.Session.createQuery(java.lang.String, java.lang.Class)'
+12
View File
@@ -0,0 +1,12 @@
# persistence-spi (javap on jakarta.persistence.spi.PersistenceUnitInfo, and on Spring's implementation)
--- methods that exist in Jakarta Persistence 4.0.0-M7 but not in 3.2.0
public abstract FetchType getDefaultToOneFetchType();
public abstract List<String> getAllClassNames();
public abstract List<String> getAllModuleDescriptors();
public abstract List<String> getAllPackageDescriptors();
public abstract List<String> getManagedModuleDescriptors();
public abstract List<String> getManagedPackageDescriptors();
--- org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo 7.0.9: methods mentioning those names
class found, 15 methods and constructors listed; matches for the six new names: 0
--- org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo 7.1.0-M2: methods mentioning those names
class found, 15 methods and constructors listed; matches for the six new names: 0
@@ -0,0 +1,4 @@
# dependency-versions (hibernate-core 8.0.0.Beta3 POM: what it declares)
<artifactId>jakarta.persistence-api</artifactId> <version>4.0.0-M7</version>
<artifactId>hibernate-models</artifactId> <version>1.3.4</version>
<artifactId>byte-buddy</artifactId> <version>1.18.11</version>
+9
View File
@@ -0,0 +1,9 @@
# suite on h7 hibernate=managed by Boot 4.1.1 persistence-api=managed by Boot 4.1.1
spring boot parent: 4.1.1
pins (hibernate-models 1.3.4, jandex 3.6.0): no
test-compile exit code: 0
tests run: 205 failures: 0 errors: 2 skipped: 0
test classes with a problem: 1
distinct final causes (count = failing test methods):
1 org.hibernate.query.UnknownNamedQueryException: No query named 'XmlQueryEmployee.findBySalaryAboveXml'
1 org.hibernate.query.UnknownParameterException: No parameter named ':min' in query with named parameters []
+11
View File
@@ -0,0 +1,11 @@
# suite on h8-boot42 hibernate=8.0.0.Beta3 persistence-api=4.0.0-M7
spring boot parent: 4.2.0-M2
pins (hibernate-models 1.3.4, jandex 3.6.0): yes
test-compile exit code: 0
tests run: 205 failures: 1 errors: 158 skipped: 0
test classes with a problem: 52
distinct final causes (count = failing test methods):
140 (context failed earlier in the same JVM; see the first failure of that context)
14 java.lang.NoSuchMethodException: org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo.getAllPackageDescriptors()
4 org.hibernate.query.NamedQueryValidationException: Errors in named queries:
1 java.lang.AssertionError:
+11
View File
@@ -0,0 +1,11 @@
# suite on h8-pinned hibernate=8.0.0.Beta3 persistence-api=4.0.0-M7
spring boot parent: 4.1.1
pins (hibernate-models 1.3.4, jandex 3.6.0): yes
test-compile exit code: 0
tests run: 205 failures: 1 errors: 158 skipped: 0
test classes with a problem: 52
distinct final causes (count = failing test methods):
140 (context failed earlier in the same JVM; see the first failure of that context)
14 java.lang.NoSuchMethodException: org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo.getAllPackageDescriptors()
4 org.hibernate.query.NamedQueryValidationException: Errors in named queries:
1 java.lang.AssertionError:
+13
View File
@@ -0,0 +1,13 @@
# suite on h8-unpinned hibernate=8.0.0.Beta3 persistence-api=4.0.0-M7
spring boot parent: 4.1.1
pins (hibernate-models 1.3.4, jandex 3.6.0): no
test-compile exit code: 0
tests run: 202 failures: 2 errors: 181 skipped: 0
test classes with a problem: 67
distinct final causes (count = failing test methods):
140 (context failed earlier in the same JVM; see the first failure of that context)
39 java.lang.ExceptionInInitializerError: Exception java.lang.NoSuchFieldError: Class org.hibernate.models.spi.AnnotationTarget$Kind does not have member field 'org.hibernat
1 javax.naming.NameAlreadyBoundException: Name jdbc already bound. Use rebind() to override
1 org.opentest4j.AssertionFailedError: Expected javax.naming.NameAlreadyBoundException to be thrown, but nothing was thrown.
1 java.lang.AssertionError:
1 java.lang.NoSuchFieldError: Class org.hibernate.models.spi.AnnotationTarget$Kind does not have member field 'org.hibernate.models.spi.AnnotationTarget$Kind MODULE'