[hibernate/hibernate-orm] a3943e: HHH-20384 Extract component handling from HbmXmlTr...
by Luca Molteni
Branch: refs/heads/main
Home: https://github.com/hibernate/hibernate-orm
Commit: a3943e46762172bc76e2919b2ce445ad7390cf64
https://github.com/hibernate/hibernate-orm/commit/a3943e46762172bc76e2919...
Author: Luca Molteni <volothamp(a)gmail.com>
Date: 2026-05-20 (Wed, 20 May 2026)
Changed paths:
M hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformer.java
A hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformerComponentHandler.java
A hibernate-core/src/test/java/org/hibernate/orm/test/boot/jaxb/hbm/transform/HbmXmlComponentVisitorTest.java
Log Message:
-----------
HHH-20384 Extract component handling from HbmXmlTransformer into HbmXmlTransformerComponentHandler
Move applyEmbeddable, convertEmbeddable, transformEmbedded,
determineEmbeddableName, and the jaxbEmbeddableByClassName dedup map
into a new HbmXmlTransformerComponentHandler class. This class takes its
dependencies (embeddableInfoByRole map, mapping root, nested attribute
processor) as constructor parameters, allowing it to be used standalone
without a MetadataImplementor — e.g. at Quarkus build time to discover
embeddable class names from hbm.xml.
HbmXmlTransformer creates the handler in its constructor, passing
this::transferBaseAttributes as the nested processor, so the full
transformation behavior is unchanged.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply(a)anthropic.com>
To unsubscribe from these emails, change your notification settings at https://github.com/hibernate/hibernate-orm/settings/notifications
1 month
[hibernate/hibernate-orm] bec97b: HHH-20449 handle JPA4 static queries as named queries
by Gavin King
Branch: refs/heads/main
Home: https://github.com/hibernate/hibernate-orm
Commit: bec97b2f88af04e9ec4243a549de73957bfcf428
https://github.com/hibernate/hibernate-orm/commit/bec97b2f88af04e9ec4243a...
Author: Gavin King <gavin(a)hibernate.org>
Date: 2026-05-20 (Wed, 20 May 2026)
Changed paths:
M documentation/src/main/asciidoc/introduction/Introduction.adoc
M documentation/src/main/asciidoc/introduction/Processor.adoc
M documentation/src/main/asciidoc/introduction/Querying.adoc
M documentation/src/main/asciidoc/repositories/Configuration.adoc
M hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotationBinder.java
M hibernate-core/src/main/java/org/hibernate/boot/model/internal/QueryBinder.java
M hibernate-core/src/main/java/org/hibernate/boot/model/internal/TemporalHelper.java
M hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/NativeQueryBuilder.java
M hibernate-core/src/main/java/org/hibernate/boot/models/JpaAnnotations.java
A hibernate-core/src/main/java/org/hibernate/boot/models/annotations/internal/ColumnResultsJpaAnnotation.java
A hibernate-core/src/main/java/org/hibernate/boot/models/annotations/internal/ConstructorResultsJpaAnnotation.java
A hibernate-core/src/main/java/org/hibernate/boot/models/annotations/internal/EntityResultsJpaAnnotation.java
M hibernate-core/src/main/java/org/hibernate/boot/query/NamedSelectionDefinition.java
M hibernate-core/src/main/java/org/hibernate/boot/query/SqlResultSetMappingDescriptor.java
M hibernate-core/src/main/java/org/hibernate/boot/query/internal/NamedNativeSelectionDefinitionImpl.java
M hibernate-core/src/main/java/org/hibernate/generator/internal/GeneratorTypeHelper.java
M hibernate-core/src/main/java/org/hibernate/internal/AbstractSharedSessionContract.java
A hibernate-core/src/main/java/org/hibernate/internal/util/ArgumentsHelper.java
A hibernate-core/src/main/java/org/hibernate/internal/util/PrimitiveHelper.java
M hibernate-core/src/main/java/org/hibernate/query/criteria/JpaTupleElement.java
M hibernate-core/src/main/java/org/hibernate/query/internal/AbstractCommonQueryContract.java
M hibernate-core/src/main/java/org/hibernate/query/internal/MutationQueryImpl.java
M hibernate-core/src/main/java/org/hibernate/query/named/NamedSelectionMemento.java
M hibernate-core/src/main/java/org/hibernate/query/named/internal/AbstractSelectionMemento.java
M hibernate-core/src/main/java/org/hibernate/query/results/internal/ResultSetMappingImpl.java
M hibernate-core/src/main/java/org/hibernate/query/specification/MutationSpecification.java
M hibernate-core/src/main/java/org/hibernate/query/specification/SelectionSpecification.java
M hibernate-core/src/main/java/org/hibernate/query/specification/internal/CountProjectionSpecificationImpl.java
M hibernate-core/src/main/java/org/hibernate/query/specification/internal/ExistsProjectionSpecificationImpl.java
M hibernate-core/src/main/java/org/hibernate/query/specification/internal/MutationSpecificationImpl.java
M hibernate-core/src/main/java/org/hibernate/query/specification/internal/ProjectionSpecificationImpl.java
M hibernate-core/src/main/java/org/hibernate/query/specification/internal/SelectionSpecificationImpl.java
M hibernate-core/src/main/java/org/hibernate/query/specification/internal/SimpleProjectionSpecificationImpl.java
M hibernate-core/src/main/java/org/hibernate/query/spi/JpaTypedQueryReference.java
M hibernate-core/src/main/java/org/hibernate/query/sql/internal/NativeQueryImpl.java
M hibernate-core/src/main/java/org/hibernate/query/sql/spi/NativeQueryImplementor.java
M hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmUtil.java
M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/SqmDeleteOrUpdateStatement.java
M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmQuerySpec.java
M hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSubQuery.java
A hibernate-core/src/test/java/org/hibernate/orm/test/query/named/Book.java
A hibernate-core/src/test/java/org/hibernate/orm/test/query/named/BookRepository.java
A hibernate-core/src/test/java/org/hibernate/orm/test/query/named/BookRepositoryQueries.java
A hibernate-core/src/test/java/org/hibernate/orm/test/query/named/GenericBookRepository.java
A hibernate-core/src/test/java/org/hibernate/orm/test/query/named/Jpa4StaticQueryRegistrationTest.java
M hibernate-scan-jandex/src/main/java/org/hibernate/scan/jandex/IndexScanner.java
A hibernate-scan-jandex/src/test/java/org/hibernate/test/scan/jandex/BookRepository.java
M hibernate-scan-jandex/src/test/java/org/hibernate/test/scan/jandex/SimpleScanningTests.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/basic/BookAuthorRepository.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/basic/DataTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/compliance/ComplianceTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/constraint/DataTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/eg/Bookshop.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/eg/EgTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/embeddedid/EmbeddedIdTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/fqcninquery/FqcnInQueryTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/DataRepositoryGenericParametersTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/hhh20212/HHH20212Test.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/hhh20221/HHH20221Test.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/idclass/CompositeIdClassTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/innerclass/InnerRepositoryTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/multivaluebinding/TopicPostTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/namedquery/NamedQueryTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/processingorder/ProcessingOrderTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/quarkus/QuarkusOrmPanacheTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/reactive/ReactiveTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/restriction/DataRestrictionTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/restriction/InvalidDataRestrictionRepository.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/select/SelectionTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/selectenumproperty/TopicTypeEnumTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/stateful/StatefulRepositoryTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/superdao/SuperRepoTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/superdao/generic/SuperRepoTest.java
M tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/versioned/VersionedTest.java
A tooling/metamodel-generator/src/jakartaData/resources/org/hibernate/processor/test/data/eg/BookshopWithDefault.java
M tooling/metamodel-generator/src/main/java/org/hibernate/processor/ClassWriter.java
M tooling/metamodel-generator/src/main/java/org/hibernate/processor/Context.java
M tooling/metamodel-generator/src/main/java/org/hibernate/processor/HibernateProcessor.java
M tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaEntity.java
M tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/QueryMethod.java
M tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/StaticQueryMethod.java
M tooling/metamodel-generator/src/quarkusHrPanache/java/org/hibernate/processor/test/hrPanache/QuarkusHrPanacheTest.java
M tooling/metamodel-generator/src/quarkusOrmPanache/java/org/hibernate/processor/test/ormPanache/QuarkusOrmPanacheTest.java
M tooling/metamodel-generator/src/test/java/org/hibernate/processor/test/dao/DaoTest.java
M tooling/metamodel-generator/src/test/java/org/hibernate/processor/test/dao/DaoTest2.java
M tooling/metamodel-generator/src/test/java/org/hibernate/processor/test/keypage/KeyBasedTest.java
M tooling/metamodel-generator/src/test/java/org/hibernate/processor/test/restriction/RestrictionTest.java
M tooling/metamodel-generator/src/test/java/org/hibernate/processor/test/superdao/SuperDaoTest.java
M tooling/metamodel-generator/src/test/java/org/hibernate/processor/test/superdao/generic/SuperDaoTest.java
M tooling/metamodel-generator/src/test/java/org/hibernate/processor/test/util/TestUtil.java
Log Message:
-----------
HHH-20449 handle JPA4 static queries as named queries
* register named queries for JPA 4 static queries (as required by spec)
* use references to named queries in repository implementations
* fix result type checking for @NativeQuery with primitives
* treat Jakarta Data @Repository annotation as if it were @Discoverable
* ensure all static query options are carried by the named query
* add operations to build Specifications from References
* cleanups in SqmQuerySpec
* error when Restriction or Order is supplied to @NativeQuery
* handle empty query strings in static queries
(still does not accept stuff like 'select name where ssn=?')
* split Repositories from JPA metamodels (this breaks backward compatibility)
To unsubscribe from these emails, change your notification settings at https://github.com/hibernate/hibernate-orm/settings/notifications
1 month