diff --git a/gradle/javadoc.gradle b/gradle/javadoc.gradle index 86430ccf8a..c1257077d0 100644 --- a/gradle/javadoc.gradle +++ b/gradle/javadoc.gradle @@ -13,9 +13,6 @@ apply from: rootProject.file( 'gradle/base-information.gradle' ) javadoc { exclude( "**/internal/*" ) exclude( "**/generated-src/**" ) - exclude( "**/sqm/tree/*" ) - exclude( "**/ast/tree/*" ) - exclude( "**/sql/results/*" ) final int currentYear = new GregorianCalendar().get( Calendar.YEAR ) diff --git a/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/MimerSQLDialect.java b/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/MimerSQLDialect.java index 2af33ff91f..c36cbbbc60 100644 --- a/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/MimerSQLDialect.java +++ b/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/MimerSQLDialect.java @@ -54,7 +54,7 @@ import static org.hibernate.type.SqlTypes.VARCHAR; /** * A dialect for Mimer SQL 11. * - * @author Fredrik lund + * @author Fredrik lund * @author Gavin King */ public class MimerSQLDialect extends Dialect { diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/JPAIndexHolder.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/JPAIndexHolder.java index 3467e9c09e..4406195efd 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/JPAIndexHolder.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/JPAIndexHolder.java @@ -14,7 +14,7 @@ import java.util.StringTokenizer; import jakarta.persistence.Index; /** - * @author Strong Liu + * @author Strong Liu */ public class JPAIndexHolder { private final String name; diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/QueryHintDefinition.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/QueryHintDefinition.java index c9acb0c3b4..8ffeb5d7b1 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/QueryHintDefinition.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/QueryHintDefinition.java @@ -28,7 +28,7 @@ import jakarta.persistence.NamedQuery; import jakarta.persistence.QueryHint; /** - * @author Strong Liu + * @author Strong Liu */ public class QueryHintDefinition { private final String queryName; diff --git a/hibernate-core/src/main/java/org/hibernate/boot/query/HbmResultSetMappingDescriptor.java b/hibernate-core/src/main/java/org/hibernate/boot/query/HbmResultSetMappingDescriptor.java index 372e9781ed..3f4f32e9fa 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/query/HbmResultSetMappingDescriptor.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/query/HbmResultSetMappingDescriptor.java @@ -65,7 +65,7 @@ import org.hibernate.sql.results.graph.entity.EntityValuedFetchable; import org.hibernate.type.BasicType; /** - * Boot-time descriptor of a result-set mapping as defined in an `hbm.xml` file + * Boot-time descriptor of a result set mapping as defined in an {@code hbm.xml} file * either implicitly or explicitly * * @author Steve Ebersole diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/CompositeOwnerTracker.java b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/CompositeOwnerTracker.java index e2a179f4c1..d7aebf7144 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/CompositeOwnerTracker.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/CompositeOwnerTracker.java @@ -13,7 +13,7 @@ import org.hibernate.engine.spi.CompositeOwner; /** * small low memory class to keep references to composite owners * - * @author Ståle W. Pedersen + * @author Ståle W. Pedersen */ public final class CompositeOwnerTracker { diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/DirtyTracker.java b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/DirtyTracker.java index 82836175b1..baabf9ddd0 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/DirtyTracker.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/DirtyTracker.java @@ -9,7 +9,7 @@ package org.hibernate.bytecode.enhance.internal.tracker; /** * Interface to be implemented by dirty trackers, a simplified Set of String. * - * @author Luis Barreiro + * @author Luis Barreiro */ public interface DirtyTracker { diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/NoopCollectionTracker.java b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/NoopCollectionTracker.java index 517fb124fc..623da27898 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/NoopCollectionTracker.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/NoopCollectionTracker.java @@ -11,7 +11,7 @@ import org.hibernate.bytecode.enhance.spi.CollectionTracker; /** * small low memory class to keep track of the number of elements in a collection * - * @author Ståle W. Pedersen + * @author Ståle W. Pedersen */ public final class NoopCollectionTracker implements CollectionTracker { diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/SimpleCollectionTracker.java b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/SimpleCollectionTracker.java index 41e2dbf623..b37f4a35fc 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/SimpleCollectionTracker.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/SimpleCollectionTracker.java @@ -14,7 +14,7 @@ import org.hibernate.internal.util.collections.ArrayHelper; /** * small low memory class to keep track of the number of elements in a collection * - * @author Ståle W. Pedersen + * @author Ståle W. Pedersen */ public final class SimpleCollectionTracker implements CollectionTracker { diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/SimpleFieldTracker.java b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/SimpleFieldTracker.java index 3814a568cc..8c432bdaaf 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/SimpleFieldTracker.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/SimpleFieldTracker.java @@ -16,7 +16,7 @@ import org.hibernate.internal.util.collections.ArrayHelper; * uses an array as a set (under the assumption that the number of elements will be low) to avoid having to instantiate an HashSet. * if the assumption does not, hold the array can be kept ordered to reduce the cost of verifying duplicates * - * @author Luis Barreiro + * @author Luis Barreiro */ public final class SimpleFieldTracker implements DirtyTracker { diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/SortedFieldTracker.java b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/SortedFieldTracker.java index 0cd29469ff..c13a364af9 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/SortedFieldTracker.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/tracker/SortedFieldTracker.java @@ -13,7 +13,7 @@ import org.hibernate.internal.util.collections.ArrayHelper; * * similar to BasicTracker but where the array is kept ordered to reduce the cost of verifying duplicates * - * @author Luis Barreiro + * @author Luis Barreiro */ public final class SortedFieldTracker implements DirtyTracker { diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/CollectionTracker.java b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/CollectionTracker.java index 879950da3d..40d2f94b47 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/CollectionTracker.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/CollectionTracker.java @@ -9,7 +9,7 @@ package org.hibernate.bytecode.enhance.spi; /** * Interface to be implemented by collection trackers that hold the expected size od collections, a simplified {@code Map}. * - * @author Luis Barreiro + * @author Luis Barreiro */ public interface CollectionTracker { diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/DefaultEnhancementContext.java b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/DefaultEnhancementContext.java index 0feb06c8ca..2e47c56177 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/DefaultEnhancementContext.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/DefaultEnhancementContext.java @@ -19,7 +19,7 @@ import jakarta.persistence.Transient; /** * default implementation of EnhancementContext. May be sub-classed as needed. * - * @author Luis Barreiro + * @author Luis Barreiro */ public class DefaultEnhancementContext implements EnhancementContext { diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/interceptor/package-info.java b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/interceptor/package-info.java index f4f14e721b..b678c6805c 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/interceptor/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/interceptor/package-info.java @@ -6,6 +6,6 @@ */ /** - * interceptor implementations + * Support for bytecode interceptor implementations. */ package org.hibernate.bytecode.enhance.spi.interceptor; diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/package-info.java b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/package-info.java index 8a90db5210..61a5774a7a 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/package-info.java @@ -6,6 +6,6 @@ */ /** - * package defining bytecode code enhancement (instrumentation) support. + * Package defining bytecode code enhancement (instrumentation) support. */ package org.hibernate.bytecode.enhance.spi; diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/spi/ClassTransformer.java b/hibernate-core/src/main/java/org/hibernate/bytecode/spi/ClassTransformer.java index 62ca3b9d1e..b198a11cda 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/spi/ClassTransformer.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/spi/ClassTransformer.java @@ -11,22 +11,25 @@ import java.security.ProtectionDomain; import jakarta.persistence.spi.TransformerException; /** - * A persistence provider provides an instance of this interface - * to the PersistenceUnitInfo.addTransformer method. - * The supplied transformer instance will get called to transform - * entity class files when they are loaded and redefined. The transformation - * occurs before the class is defined by the JVM + * A persistence provider provides an instance of this interface to the + * {@link jakarta.persistence.spi.PersistenceUnitInfo#addTransformer} method. + * The supplied transformer instance will get called to transform entity class + * files when they are loaded and redefined. The transformation occurs before + * the class is defined by the JVM. * - * @author Bill Burke + * @author Bill Burke * @author Emmanuel Bernard */ public interface ClassTransformer extends jakarta.persistence.spi.ClassTransformer { /** - * Invoked when a class is being loaded or redefined to add hooks for persistence bytecode manipulation. + * Invoked when a class is being loaded or redefined to add hooks for persistence + * bytecode manipulation. * - * @param loader the defining class loader of the class being transformed. It may be null if using bootstrap loader + * @param loader The defining class loader of the class being transformed. + * It may be null if using bootstrap loader * @param className The name of the class being transformed - * @param classBeingRedefined If an already loaded class is being redefined, then pass this as a parameter + * @param classBeingRedefined If an already loaded class is being redefined, + * then pass this as a parameter * @param protectionDomain ProtectionDomain of the class being (re)-defined * @param classfileBuffer The input byte buffer in class file format * @return A well-formed class file that can be loaded diff --git a/hibernate-core/src/main/java/org/hibernate/collection/internal/package-info.java b/hibernate-core/src/main/java/org/hibernate/collection/internal/package-info.java index 494cf0aa8f..74cb32f1fc 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/internal/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/internal/package-info.java @@ -6,6 +6,6 @@ */ /** - * Internal implementations and support for persistent collections + * Internal implementations and support for persistent collections. */ package org.hibernate.collection.internal; diff --git a/hibernate-core/src/main/java/org/hibernate/collection/package-info.java b/hibernate-core/src/main/java/org/hibernate/collection/package-info.java index 55641e62d0..9453de1c26 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/package-info.java @@ -6,11 +6,13 @@ */ /** - * This package defines a framework for collection wrappers. The - * interface {@link org.hibernate.collection.spi.PersistentCollection} - * and all its implementations belong to an SPI. They are not part of - * the public API of Hibernate, and are not meant to be used directly - * by typical programs which use Hibernate for persistence. + * This package defines a framework for lazy-initializing and state-tracking + * collection wrappers. + *

+ * The interface {@link org.hibernate.collection.spi.PersistentCollection} + * and all its implementations belong to an SPI. They are not part of the + * public API of Hibernate, and are not meant to be used directly by typical + * programs which use Hibernate for persistence. * * @see org.hibernate.proxy */ diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionInitializerProducer.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionInitializerProducer.java index 2738fe6882..1138134dca 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionInitializerProducer.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionInitializerProducer.java @@ -16,7 +16,7 @@ import org.hibernate.sql.results.graph.FetchParentAccess; import org.hibernate.sql.results.graph.collection.CollectionInitializer; /** - * Functional contract to create a CollectionInitializer + * Functional contract to create a {@link CollectionInitializer}. * * @author Steve Ebersole * @@ -26,15 +26,20 @@ import org.hibernate.sql.results.graph.collection.CollectionInitializer; @FunctionalInterface public interface CollectionInitializerProducer { /** - * Create an initializer for `attribute` relative to `navigablePath`. + * Create an initializer for the given attribute relative to the given + * navigable path. * - * `parentAccess` may be null to indicate that the initializer is for - * a {@link org.hibernate.sql.results.graph.DomainResult} rather than - * a {@link org.hibernate.sql.results.graph.Fetch} - * - * `collectionKeyAssembler` and `collectionValueKeyAssembler` allow - * creating {@link org.hibernate.sql.results.graph.DomainResult} for - * either side of the collection foreign-key + * @param navigablePath the navigable path + * @param attribute the attribute + * @param parentAccess may be null to indicate that the initializer is + * for a {@link org.hibernate.sql.results.graph.DomainResult} + * rather than a {@link org.hibernate.sql.results.graph.Fetch} + * @param collectionKeyAssembler allows creation of a + * {@link org.hibernate.sql.results.graph.DomainResult} for + * either side of the collection foreign key + * @param collectionValueKeyAssembler allows creation of a + * {@link org.hibernate.sql.results.graph.DomainResult} for + * either side of the collection foreign key */ CollectionInitializer produceInitializer( NavigablePath navigablePath, diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionSemantics.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionSemantics.java index 3d57f27ba0..ae5da5e470 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionSemantics.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionSemantics.java @@ -20,10 +20,12 @@ import org.hibernate.sql.results.graph.Fetch; import org.hibernate.sql.results.graph.FetchParent; /** - * Describes the semantics of a persistent collection such that Hibernate - * understands how to use it - create one, handle elements, etc. - * - * @apiNote The described collection need not be part of the "Java Collection Framework" + * Each instance of this interface describes the semantics of some sort of + * persistent collection so that Hibernate understands how to manage the + * lifecycle of instances of that sort of collection. + *

+ * A collection type with semantics described by a {@code CollectionSemantics} + * object need not be part of the Java Collections Framework. * * @param the collection element or map key type * @param the type of the collection diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionSemanticsResolver.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionSemanticsResolver.java index 2d43272a12..3c0d9a899c 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionSemanticsResolver.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionSemanticsResolver.java @@ -10,13 +10,12 @@ import org.hibernate.Incubating; import org.hibernate.mapping.Collection; /** - * Resolve the collection semantics for the given mapped collection + * Resolve the collection semantics for the given mapped collection. * - * todo (6.0) ... - * - * Ideally would act as the contract that allows pluggable resolution of - * non-Java Collection types - maybe as part of a generalized reflection - * on the attribute to determine its nature/classification + * @apiNote Ideally, this would act as the contract that allows pluggable + * resolution of non-Java Collection types, perhaps as part of a + * generalized reflection on the attribute to determine its + * nature/classification * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/InitializerProducerBuilder.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/InitializerProducerBuilder.java index 82a2067a98..518aa3ddb0 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/InitializerProducerBuilder.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/InitializerProducerBuilder.java @@ -36,29 +36,23 @@ public class InitializerProducerBuilder { Fetch elementFetch, DomainResultCreationState creationState) { switch ( classification ) { - case ARRAY: { + case ARRAY: return createArrayInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, indexFetch, elementFetch, creationState ); - } case BAG: - case ID_BAG: { + case ID_BAG: return createBagInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, elementFetch, creationState ); - } - case LIST: { + case LIST: return createListInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, indexFetch, elementFetch, creationState ); - } case MAP: case ORDERED_MAP: - case SORTED_MAP: { + case SORTED_MAP: return createMapInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, indexFetch, elementFetch, creationState ); - } case SET: case ORDERED_SET: - case SORTED_SET: { + case SORTED_SET: return createSetInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, elementFetch, creationState ); - } - default: { + default: throw new IllegalArgumentException( "Unknown CollectionClassification : " + classification ); - } } } @@ -228,7 +222,7 @@ public class InitializerProducerBuilder { Fetch elementFetch, DomainResultCreationState creationState) { switch ( classification ) { - case ARRAY: { + case ARRAY: return createArrayInitializerProducer( navigablePath, attributeMapping, @@ -238,9 +232,8 @@ public class InitializerProducerBuilder { elementFetch, creationState ); - } case BAG: - case ID_BAG: { + case ID_BAG: assert indexFetch == null; return createBagInitializerProducer( navigablePath, @@ -250,8 +243,7 @@ public class InitializerProducerBuilder { elementFetch, creationState ); - } - case LIST: { + case LIST: return createListInitializerProducer( navigablePath, attributeMapping, @@ -261,10 +253,9 @@ public class InitializerProducerBuilder { elementFetch, creationState ); - } case MAP: case ORDERED_MAP: - case SORTED_MAP: { + case SORTED_MAP: return createMapInitializerProducer( navigablePath, attributeMapping, @@ -274,10 +265,9 @@ public class InitializerProducerBuilder { elementFetch, creationState ); - } case SET: case ORDERED_SET: - case SORTED_SET: { + case SORTED_SET: return createSetInitializerProducer( navigablePath, attributeMapping, @@ -286,10 +276,8 @@ public class InitializerProducerBuilder { elementFetch, creationState ); - } - default: { + default: throw new IllegalArgumentException( "Unknown CollectionClassification : " + classification ); - } } } diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/LazyInitializable.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/LazyInitializable.java index 38c8345181..60b9c14175 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/LazyInitializable.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/LazyInitializable.java @@ -9,9 +9,21 @@ package org.hibernate.collection.spi; import org.hibernate.Incubating; /** - * Hibernate "wraps" a java collection in an instance of PersistentCollection. Envers uses custom collection - * wrappers (ListProxy, SetProxy, etc). All of them need to extend LazyInitializable, so the - * Hibernate.isInitialized method can check if the collection is initialized or not. + * The most general abstraction over collections which may be fetched lazily. + *

+ *

+ * All of these wrapper objects extend {@code LazyInitializable}, allowing: + *

* * @author Fabricio Gregorio */ @@ -22,11 +34,15 @@ public interface LazyInitializable { * Is this instance initialized? * * @return Was this collection initialized? Or is its data still not (fully) loaded? + * + * @see org.hibernate.Hibernate#isInitialized(Object) */ boolean wasInitialized(); /** * To be called internally by the session, forcing immediate initialization. + * + * @see org.hibernate.Hibernate#initialize(Object) */ void forceInitialization(); diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/MapSemantics.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/MapSemantics.java index b8c0491639..cc5f6e1822 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/MapSemantics.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/MapSemantics.java @@ -12,7 +12,7 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; /** - * Extension of CollectionSemantics for Maps + * Extension of {@link CollectionSemantics} for Maps * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentArrayHolder.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentArrayHolder.java index 5a27aa1530..778dce7341 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentArrayHolder.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentArrayHolder.java @@ -24,12 +24,13 @@ import org.hibernate.persister.collection.CollectionPersister; import org.hibernate.type.Type; /** - * A persistent wrapper for an array. Lazy initialization - * is NOT supported. Use of Hibernate arrays is not really - * recommended. + * A dummy collection wrapper for an array. Lazy initialization is + * not supported. The use of arrays to represent persistent + * collections in Hibernate is discouraged. * - * @apiNote Incubating in terms of making this non-internal. These contracts - * will be getting cleaned up in following releases. + * @apiNote Incubating in terms of making this non-internal. + * These contracts will be getting cleaned up in following + * releases. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentBag.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentBag.java index ec7ed74471..8c46af8736 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentBag.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentBag.java @@ -26,13 +26,15 @@ import org.hibernate.persister.collection.CollectionPersister; import org.hibernate.type.Type; /** - * An unordered, unkeyed collection that can contain the same element - * multiple times. The Java collections API, curiously, has no {@code Bag}. - * Most developers seem to use {@code List}s to represent bag semantics, - * so Hibernate follows this practice. + * An unordered, un-keyed collection that can contain the same element + * multiple times. The Java Collections Framework, curiously, has no + * {@code Bag} interface. It is, however, common to use {@code List}s + * to represent a collection with bag semantics, so Hibernate follows + * this practice. * - * @apiNote Incubating in terms of making this non-internal. These contracts - * will be getting cleaned up in following releases. + * @apiNote Incubating in terms of making this non-internal. + * These contracts will be getting cleaned up in following + * releases. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentCollection.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentCollection.java index 590ff3f761..e76e007ffa 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentCollection.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentCollection.java @@ -21,26 +21,29 @@ import org.hibernate.type.Type; /** * Persistent collections are treated as value objects by Hibernate. - * ie. they have no independent existence beyond the object holding - * a reference to them. Unlike instances of entity classes, they are + * They have no independent existence beyond the entity holding a + * reference to them. Unlike instances of entity classes, they are * automatically deleted when unreferenced and automatically become * persistent when held by a persistent object. Collections can be * passed between different objects (change "roles") and this might * cause their elements to move from one database table to another. *

- * Hibernate "wraps" a java collection in an instance of - * PersistentCollection. This mechanism is designed to support - * tracking of changes to the collection's persistent state and - * lazy instantiation of collection elements. The downside is that + * Hibernate "wraps" a Java collection in an instance of + * {@code PersistentCollection}. This mechanism is allows for + * tracking of changes to the persistent state of the collection and + * lazy fetching of the collection elements. The downside is that * only certain abstract collection types are supported and any - * extra semantics are lost + * extra semantics associated with the particular implementation of + * the generic collection type are lost. For example, every + * {@link java.util.List} behaves like an {@code ArrayList}, and + * every {@link java.util.SortedMap} behaves like a {@code TreeMap}. *

* Applications should never use classes in this package * directly, unless extending the "framework" here. *

- * Changes to structure of the collection are recorded by the - * collection calling back to the session. Changes to mutable - * elements (ie. composite elements) are discovered by cloning their + * Changes to structure of the collection are recorded by + * the collection calling back to the session. Changes to mutable + * elements (composite elements) are discovered by cloning their * state when the collection is initialized and comparing at flush * time. * diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentIdentifierBag.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentIdentifierBag.java index 2e9ec3c643..18983996b2 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentIdentifierBag.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentIdentifierBag.java @@ -26,17 +26,18 @@ import org.hibernate.type.Type; import static org.hibernate.generator.EventType.INSERT; /** - * An {@code IdentifierBag} implements "bag" semantics more efficiently than - * a regular {@code Bag} by adding a synthetic identifier column to the - * table. This identifier is unique for all rows in the table, allowing very - * efficient updates and deletes. The value of the identifier is never exposed - * to the application. + * An "identifier bag" implements "bag" semantics more efficiently than a + * regular bag by adding a synthetic identifier column to the table. This + * identifier is unique over all rows in the table, allowing very efficient + * updates and deletes. The value of the identifier is never exposed to the + * application. *

- * {@code IdentifierBag}s may not be used for a many-to-one association. + * Identifier bags may not be used for a many-to-one association. * Furthermore, there is no reason to use {@code inverse="true"}. * - * @apiNote Incubating in terms of making this non-internal. These contracts - * will be getting cleaned up in following releases. + * @apiNote Incubating in terms of making this non-internal. + * These contracts will be getting cleaned up in following + * releases. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentList.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentList.java index f5cc3f6ab9..9a19104aef 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentList.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentList.java @@ -23,11 +23,12 @@ import org.hibernate.persister.collection.CollectionPersister; import org.hibernate.type.Type; /** - * A persistent wrapper for a {@code java.util.List}. Underlying + * A persistent wrapper for a {@link java.util.List}. Underlying * collection is an {@code ArrayList}. * - * @apiNote Incubating in terms of making this non-internal. These contracts - * will be getting cleaned up in following releases. + * @apiNote Incubating in terms of making this non-internal. + * These contracts will be getting cleaned up in following + * releases. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentMap.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentMap.java index ffea7f8b26..5805d79140 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentMap.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentMap.java @@ -28,11 +28,12 @@ import org.hibernate.type.Type; /** - * A persistent wrapper for a {@code java.util.Map}. Underlying collection + * A persistent wrapper for a {@link java.util.Map}. Underlying collection * is a {@code HashMap}. * - * @apiNote Incubating in terms of making this non-internal. These contracts - * will be getting cleaned up in following releases. + * @apiNote Incubating in terms of making this non-internal. + * These contracts will be getting cleaned up in following + * releases. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSet.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSet.java index 2c005f4dad..6f771b8911 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSet.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSet.java @@ -26,11 +26,12 @@ import org.hibernate.type.Type; /** - * A persistent wrapper for a {@code java.util.Set}. The underlying + * A persistent wrapper for a {@link java.util.Set}. The underlying * collection is a {@code HashSet}. * - * @apiNote Incubating in terms of making this non-internal. These contracts - * will be getting cleaned up in following releases. + * @apiNote Incubating in terms of making this non-internal. + * These contracts will be getting cleaned up in following + * releases. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSortedMap.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSortedMap.java index 3503872d59..d1a67e8984 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSortedMap.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSortedMap.java @@ -20,13 +20,14 @@ import org.hibernate.engine.spi.SharedSessionContractImplementor; import org.hibernate.persister.collection.BasicCollectionPersister; /** - * A persistent wrapper for a {@code java.util.SortedMap}. Underlying + * A persistent wrapper for a {@link java.util.SortedMap}. Underlying * collection is a {@code TreeMap}. * - * @apiNote Incubating in terms of making this non-internal. These contracts - * will be getting cleaned up in following releases. + * @apiNote Incubating in terms of making this non-internal. + * These contracts will be getting cleaned up in following + * releases. * - * @author e + * @author Doug Currie */ @Incubating public class PersistentSortedMap extends PersistentMap implements SortedMap { diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSortedSet.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSortedSet.java index 8b10765360..26a645bbd7 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSortedSet.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSortedSet.java @@ -17,13 +17,14 @@ import org.hibernate.engine.spi.SharedSessionContractImplementor; import org.hibernate.persister.collection.BasicCollectionPersister; /** - * A persistent wrapper for a {@code java.util.SortedSet}. Underlying + * A persistent wrapper for a {@link java.util.SortedSet}. Underlying * collection is a {@code TreeSet}. * - * @apiNote Incubating in terms of making this non-internal. These contracts - * will be getting cleaned up in following releases. + * @apiNote Incubating in terms of making this non-internal. + * These contracts will be getting cleaned up in following + * releases. * - * @author e + * @author Doug Currie */ @Incubating public class PersistentSortedSet extends PersistentSet implements SortedSet { diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/package-info.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/package-info.java index 2a3a891d6b..183cd0fb31 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/package-info.java @@ -6,6 +6,15 @@ */ /** - * SPI definitions for persistent collections. + * This package defines the SPI of a framework for lazy-initializing + * and state-tracking collection wrappers. + *

+ * The interface {@link org.hibernate.collection.spi.PersistentCollection} + * and all its implementations belong to an SPI. They are not part of the + * public API of Hibernate, and are not meant to be used directly by typical + * programs which use Hibernate for persistence. + * + * @see org.hibernate.collection.spi.PersistentCollection + * @see org.hibernate.collection.spi.CollectionSemantics */ package org.hibernate.collection.spi; diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/AbstractHANADialect.java b/hibernate-core/src/main/java/org/hibernate/dialect/AbstractHANADialect.java index 8a35b00c99..954e2b2b12 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/AbstractHANADialect.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/AbstractHANADialect.java @@ -160,8 +160,8 @@ import static org.hibernate.type.descriptor.DateTimeUtils.appendAsTimestampWithM *

* Note: This dialect is configured to create foreign keys with {@code on update cascade}. * - * @author Andrew Clemons - * @author Jonathan Bregler + * @author Andrew Clemons + * @author Jonathan Bregler */ public abstract class AbstractHANADialect extends Dialect { private static final CoreMessageLogger LOG = CoreLogging.messageLogger( AbstractHANADialect.class ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/HANACloudColumnStoreDialect.java b/hibernate-core/src/main/java/org/hibernate/dialect/HANACloudColumnStoreDialect.java index 77ca795421..6818096036 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/HANACloudColumnStoreDialect.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/HANACloudColumnStoreDialect.java @@ -17,7 +17,7 @@ package org.hibernate.dialect; *

* Column tables are created by this dialect when using the auto-ddl feature. * - * @author Jonathan Bregler + * @author Jonathan Bregler * * @deprecated use HANAColumnStoreDialect(400) */ diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/HANAColumnStoreDialect.java b/hibernate-core/src/main/java/org/hibernate/dialect/HANAColumnStoreDialect.java index a8d2fb2284..5a3d2f942d 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/HANAColumnStoreDialect.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/HANAColumnStoreDialect.java @@ -32,8 +32,8 @@ import static org.hibernate.query.sqm.produce.function.FunctionParameterType.ANY *

* Column tables are created by this dialect when using the auto-ddl feature. * - * @author Andrew Clemons - * @author Jonathan Bregler + * @author Andrew Clemons + * @author Jonathan Bregler */ public class HANAColumnStoreDialect extends AbstractHANADialect { diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/HANARowStoreDialect.java b/hibernate-core/src/main/java/org/hibernate/dialect/HANARowStoreDialect.java index f0ce4a6277..7b9e57ba69 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/HANARowStoreDialect.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/HANARowStoreDialect.java @@ -27,8 +27,8 @@ import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy; *

* Row tables are created by this dialect when using the auto-ddl feature. * - * @author Andrew Clemons - * @author Jonathan Bregler + * @author Andrew Clemons + * @author Jonathan Bregler */ public class HANARowStoreDialect extends AbstractHANADialect { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/AbstractEntityEntry.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/AbstractEntityEntry.java index 2c92352a74..94af098373 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/internal/AbstractEntityEntry.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/AbstractEntityEntry.java @@ -41,9 +41,9 @@ import static org.hibernate.engine.internal.ManagedTypeHelper.isPersistentAttrib * A base implementation of EntityEntry * * @author Gavin King - * @author Emmanuel Bernard + * @author Emmanuel Bernard * @author Gunnar Morling - * @author Sanne Grinovero + * @author Sanne Grinovero */ public abstract class AbstractEntityEntry implements Serializable, EntityEntry { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/EntityEntryExtraStateHolder.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/EntityEntryExtraStateHolder.java index 19d632387d..b65383dd2e 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/internal/EntityEntryExtraStateHolder.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/EntityEntryExtraStateHolder.java @@ -11,7 +11,7 @@ import org.hibernate.engine.spi.EntityEntryExtraState; /** * Contains optional state from {@link org.hibernate.engine.spi.EntityEntry}. * - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ public class EntityEntryExtraStateHolder implements EntityEntryExtraState { private EntityEntryExtraState next; diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/ImmutableEntityEntry.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/ImmutableEntityEntry.java index 2b77beaab4..d5839e3286 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/internal/ImmutableEntityEntry.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/ImmutableEntityEntry.java @@ -23,9 +23,9 @@ import org.hibernate.persister.entity.EntityPersister; * immutable in terms of its internal state; the term immutable here refers to the entity it describes. * * @author Gavin King - * @author Emmanuel Bernard + * @author Emmanuel Bernard * @author Gunnar Morling - * @author Sanne Grinovero + * @author Sanne Grinovero * * @see org.hibernate.annotations.Immutable */ diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/MutableEntityEntry.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/MutableEntityEntry.java index 1695615459..25faedaad7 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/internal/MutableEntityEntry.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/MutableEntityEntry.java @@ -20,9 +20,9 @@ import org.hibernate.persister.entity.EntityPersister; * An EntityEntry implementation for mutable entities. * * @author Gavin King - * @author Emmanuel Bernard + * @author Emmanuel Bernard * @author Gunnar Morling - * @author Sanne Grinovero + * @author Sanne Grinovero */ public final class MutableEntityEntry extends AbstractEntityEntry { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/package-info.java b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/package-info.java index e7f7fed5c4..654c529c84 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/package-info.java @@ -6,6 +6,6 @@ */ /** - * Internals for accessing JDBC Connections + * Various implementations of the SPI contracts for obtaining JDBC {@link java.sql.Connection}s. */ package org.hibernate.engine.jdbc.connections.internal; diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/package-info.java b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/package-info.java index ac4817ed9b..b3f79460ac 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/package-info.java @@ -6,6 +6,9 @@ */ /** - * Defines contracts for accessing JDBC Connections + * Defines SPI contracts for obtaining JDBC {@link java.sql.Connection}s from a + * provider implemented as a {@linkplain org.hibernate.service.Service service}. + * + * @see org.hibernate.engine.jdbc.connections.spi.ConnectionProvider */ package org.hibernate.engine.jdbc.connections.spi; diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/package-info.java b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/package-info.java index 1f9d62aa87..7eaf88b283 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/package-info.java @@ -6,6 +6,6 @@ */ /** - * Support for various aspects of JDBC interaction + * Support for various aspects of JDBC interaction. */ package org.hibernate.engine.jdbc; diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/spi/package-info.java b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/spi/package-info.java index dac94095d5..f9bb28e1d6 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/spi/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/spi/package-info.java @@ -6,6 +6,6 @@ */ /** - * SPI contracts for supporting various aspects of JDBC interaction + * SPI contracts supporting various aspects of JDBC interaction. */ package org.hibernate.engine.jdbc.spi; diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jndi/spi/package-info.java b/hibernate-core/src/main/java/org/hibernate/engine/jndi/spi/package-info.java index 8aba8fa50b..88245e4fad 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jndi/spi/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jndi/spi/package-info.java @@ -6,6 +6,6 @@ */ /** - * The SPI contracts for Hibernate JNDI support + * The SPI contracts for integration with JNDI. */ package org.hibernate.engine.jndi.spi; diff --git a/hibernate-core/src/main/java/org/hibernate/engine/profile/package-info.java b/hibernate-core/src/main/java/org/hibernate/engine/profile/package-info.java index e8b62359bd..bdcde357b3 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/profile/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/profile/package-info.java @@ -6,6 +6,6 @@ */ /** - * Models the fetch profiles defined by the application + * Models the fetch profiles defined by the application. */ package org.hibernate.engine.profile; diff --git a/hibernate-core/src/main/java/org/hibernate/engine/spi/CompositeOwner.java b/hibernate-core/src/main/java/org/hibernate/engine/spi/CompositeOwner.java index c7715a893c..515fe40237 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/spi/CompositeOwner.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/spi/CompositeOwner.java @@ -7,7 +7,7 @@ package org.hibernate.engine.spi; /** - * @author Ståle W. Pedersen + * @author Ståle W. Pedersen */ public interface CompositeOwner extends PrimeAmongSecondarySupertypes { /** diff --git a/hibernate-core/src/main/java/org/hibernate/engine/spi/CompositeTracker.java b/hibernate-core/src/main/java/org/hibernate/engine/spi/CompositeTracker.java index f15ee45cdd..2a3c9e5b90 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/spi/CompositeTracker.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/spi/CompositeTracker.java @@ -7,7 +7,7 @@ package org.hibernate.engine.spi; /** - * @author Ståle W. Pedersen + * @author Ståle W. Pedersen */ public interface CompositeTracker extends PrimeAmongSecondarySupertypes { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/spi/EntityEntry.java b/hibernate-core/src/main/java/org/hibernate/engine/spi/EntityEntry.java index 36da313a47..55f1ae765b 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/spi/EntityEntry.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/spi/EntityEntry.java @@ -20,9 +20,9 @@ import org.hibernate.persister.entity.EntityPersister; * therefore we need to take care of its impact on memory consumption. * * @author Gavin King - * @author Emmanuel Bernard + * @author Emmanuel Bernard * @author Gunnar Morling - * @author Sanne Grinovero + * @author Sanne Grinovero */ public interface EntityEntry { LockMode getLockMode(); diff --git a/hibernate-core/src/main/java/org/hibernate/engine/spi/EntityEntryExtraState.java b/hibernate-core/src/main/java/org/hibernate/engine/spi/EntityEntryExtraState.java index a7da29e0d8..4024a41400 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/spi/EntityEntryExtraState.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/spi/EntityEntryExtraState.java @@ -10,7 +10,7 @@ package org.hibernate.engine.spi; /** * Navigation methods for extra state objects attached to {@link EntityEntry}. * - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ public interface EntityEntryExtraState { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/spi/PrimeAmongSecondarySupertypes.java b/hibernate-core/src/main/java/org/hibernate/engine/spi/PrimeAmongSecondarySupertypes.java index 1f97ef3288..d715faba16 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/spi/PrimeAmongSecondarySupertypes.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/spi/PrimeAmongSecondarySupertypes.java @@ -6,18 +6,20 @@ */ package org.hibernate.engine.spi; +import org.hibernate.Internal; import org.hibernate.engine.internal.ManagedTypeHelper; import org.hibernate.proxy.HibernateProxy; import org.hibernate.proxy.ProxyConfiguration; /** - * For a full explanation of the purpose of this interface - * see {@link ManagedTypeHelper}. - * This is an internal, private marking interface; it's exposed in the spi - * package as bytecode enhanced usercode needs to be able to refer to it. + * For a full explanation of the purpose of this interface see {@link ManagedTypeHelper}. + * + * @apiNote This is an internal, private marking interface; it's exposed in the SPI + * package as bytecode enhanced user code needs to be able to reference it. * * @author Sanne Grinovero */ +@Internal public interface PrimeAmongSecondarySupertypes { default ManagedEntity asManagedEntity() { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/spi/SelfDirtinessTracker.java b/hibernate-core/src/main/java/org/hibernate/engine/spi/SelfDirtinessTracker.java index 5f20eb5e98..ec63ec48b2 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/spi/SelfDirtinessTracker.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/spi/SelfDirtinessTracker.java @@ -16,7 +16,7 @@ import org.hibernate.bytecode.enhance.spi.CollectionTracker; * also introduced into the entity when using bytecode enhancement and requesting * that entities track their own dirtiness. * - * @author Ståle W. Pedersen + * @author Ståle W. Pedersen */ public interface SelfDirtinessTracker extends PrimeAmongSecondarySupertypes { /** diff --git a/hibernate-core/src/main/java/org/hibernate/engine/spi/SessionLazyDelegator.java b/hibernate-core/src/main/java/org/hibernate/engine/spi/SessionLazyDelegator.java index 828fc43a97..6ebbac067b 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/spi/SessionLazyDelegator.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/spi/SessionLazyDelegator.java @@ -61,7 +61,7 @@ import jakarta.persistence.metamodel.Metamodel; * Another difference with SessionDelegatorBaseImpl is that * this type only implements Session. * - * @author Sanne Grinovero (C) 2022 Red Hat Inc. + * @author Sanne Grinovero */ public class SessionLazyDelegator implements Session { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereExtendedJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereExtendedJtaPlatform.java index 5352df6ecc..fd7c7d0825 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereExtendedJtaPlatform.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereExtendedJtaPlatform.java @@ -35,7 +35,7 @@ import org.hibernate.HibernateException; * This class is reported to work on WAS version 6 in any of the standard J2EE/Java EE component containers. * * @author Gavin King - * @author Kabir Khan + * @author Kabir Khan * @author Steve Ebersole */ public class PostDeleteEventListenerStandardImpl implements PostDeleteEventListener, CallbackRegistryConsumer { diff --git a/hibernate-core/src/main/java/org/hibernate/event/internal/PostInsertEventListenerStandardImpl.java b/hibernate-core/src/main/java/org/hibernate/event/internal/PostInsertEventListenerStandardImpl.java index ac80abee20..36f189db64 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/internal/PostInsertEventListenerStandardImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/event/internal/PostInsertEventListenerStandardImpl.java @@ -14,7 +14,7 @@ import org.hibernate.jpa.event.spi.CallbackType; import org.hibernate.persister.entity.EntityPersister; /** - * @author Kabir Khan + * @author Kabir Khan * @author Steve Ebersole */ public class PostInsertEventListenerStandardImpl implements PostInsertEventListener, CallbackRegistryConsumer { diff --git a/hibernate-core/src/main/java/org/hibernate/event/spi/PostLoadEvent.java b/hibernate-core/src/main/java/org/hibernate/event/spi/PostLoadEvent.java index beafd1d244..7a5b988849 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/spi/PostLoadEvent.java +++ b/hibernate-core/src/main/java/org/hibernate/event/spi/PostLoadEvent.java @@ -11,7 +11,7 @@ import org.hibernate.persister.entity.EntityPersister; /** * Occurs after an entity instance is fully loaded. * - * @author Kabir Khan, Gavin King + * @author Kabir Khan, Gavin King */ public class PostLoadEvent extends AbstractEvent { private Object entity; diff --git a/hibernate-core/src/main/java/org/hibernate/event/spi/PostLoadEventListener.java b/hibernate-core/src/main/java/org/hibernate/event/spi/PostLoadEventListener.java index 3d80450374..4a2d22f2e7 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/spi/PostLoadEventListener.java +++ b/hibernate-core/src/main/java/org/hibernate/event/spi/PostLoadEventListener.java @@ -9,7 +9,7 @@ package org.hibernate.event.spi; /** * Occurs after an entity instance is fully loaded. * - * @author Kabir Khan + * @author Kabir Khan */ public interface PostLoadEventListener { void onPostLoad(PostLoadEvent event); diff --git a/hibernate-core/src/main/java/org/hibernate/graph/AttributeNode.java b/hibernate-core/src/main/java/org/hibernate/graph/AttributeNode.java index f89de88f81..83d48dd39f 100644 --- a/hibernate-core/src/main/java/org/hibernate/graph/AttributeNode.java +++ b/hibernate-core/src/main/java/org/hibernate/graph/AttributeNode.java @@ -14,7 +14,7 @@ import org.hibernate.metamodel.model.domain.PersistentAttribute; /** * Hibernate extension to the JPA entity-graph AttributeNode contract. * - * @author Strong Liu + * @author Strong Liu * @author Steve Ebersole * @author Andrea Boriero */ diff --git a/hibernate-core/src/main/java/org/hibernate/graph/EntityGraphs.java b/hibernate-core/src/main/java/org/hibernate/graph/EntityGraphs.java index eb3ad9a52d..ee0aabebaf 100644 --- a/hibernate-core/src/main/java/org/hibernate/graph/EntityGraphs.java +++ b/hibernate-core/src/main/java/org/hibernate/graph/EntityGraphs.java @@ -23,14 +23,15 @@ import org.hibernate.graph.spi.RootGraphImplementor; /** * A collection of {@link EntityGraph} utilities. - * These methods really belong inside other classes that we cannot modify, hence here. + * + * @apiNote These methods really belong inside other classes that we cannot modify. * * @author asusnjar */ public final class EntityGraphs { /** - * Merges multiple entity graphs into a single graph that specifies the fetching/loading of all attributes the input - * graphs specify. + * Merges multiple entity graphs into a single graph that specifies the + * fetching/loading of all attributes the input graphs specify. * * @param Root entity type of the query and graph. * @@ -70,8 +71,8 @@ public final class EntityGraphs { } /** - * Convenience method for {@linkplain Query#getResultList() executing} the Query, applying the - * given EntityGraph using the specified semantic + * Convenience method for {@linkplain Query#getResultList() executing the query}, + * applying the given {@link EntityGraph} using the specified semantic * * @param query The JPA Query * @param graph The graph to apply @@ -85,15 +86,16 @@ public final class EntityGraphs { } /** - * Form of {@link #executeList(Query, EntityGraph, GraphSemantic)} accepting a TypedQuery. + * Form of {@link #executeList(Query, EntityGraph, GraphSemantic)} accepting a + * {@link TypedQuery}. * * @param query The JPA Query * @param graph The graph to apply * @param semantic The semantic to use when applying the graph * - * @apiNote This signature assumes that the Query's return is an entity and that the graph - * applies to that entity's type. JPA does not necessarily require that, but it is by - * far the most common usage. + * @apiNote This signature assumes that the Query's return is an entity and that + * the graph applies to that entity's type. JPA does not necessarily + * require that, but it is by far the most common usage. */ @SuppressWarnings({"unused", "unchecked"}) public static List executeList(TypedQuery query, EntityGraph graph, GraphSemantic semantic) { @@ -101,9 +103,9 @@ public final class EntityGraphs { } /** - * Convenience method for {@linkplain Query#getResultList() executing} the Query, applying the - * given EntityGraph using the named semantic using JPA's "hint name" - see - * {@link GraphSemantic#fromHintName} + * Convenience method for {@linkplain Query#getResultList() executing the query}, + * applying the given {@link EntityGraph} using the named semantic using JPA's + * "hint name". See {@link GraphSemantic#fromHintName}. * * @param query The JPA Query * @param graph The graph to apply @@ -119,15 +121,16 @@ public final class EntityGraphs { } /** - * Form of {@link #executeList(Query, EntityGraph, String)} accepting a TypedQuery + * Form of {@link #executeList(Query, EntityGraph, String)} accepting a + * {@link TypedQuery}. * * @param query The JPA Query * @param graph The graph to apply * @param semanticJpaHintName See {@link GraphSemantic#fromHintName} * - * @apiNote This signature assumes that the Query's return is an entity and that the graph - * applies to that entity's type. JPA does not necessarily require that, but it is by - * far the most common usage. + * @apiNote This signature assumes that the Query's return is an entity and that + * the graph applies to that entity's type. JPA does not necessarily + * require that, but it is by far the most common usage. */ @SuppressWarnings({"unused", "unchecked"}) public static List executeList(TypedQuery query, EntityGraph graph, String semanticJpaHintName) { @@ -135,16 +138,16 @@ public final class EntityGraphs { } /** - * Convenience method for {@linkplain Query#getResultList() executing} the Query using the - * given EntityGraph + * Convenience method for {@linkplain Query#getResultList() executing the query} + * using the given {@link EntityGraph}. * * @param query The JPA Query * @param graph The graph to apply * - * @apiNote operates on the assumption that the "default" semantic for an - * entity graph applied to a Query is {@link GraphSemantic#FETCH}. This is simply - * knowledge from JPA EG discussions, nothing that is specifically mentioned or - * discussed in the spec. + * @apiNote Operates on the assumption that the "default" semantic for an + * entity graph applied to a query is {@link GraphSemantic#FETCH}. + * This is simply knowledge from JPA EG discussions, nothing that + * is specifically mentioned or discussed in the spec. */ @SuppressWarnings({"unused", "unchecked"}) public static List executeList(Query query, EntityGraph graph) { @@ -154,14 +157,15 @@ public final class EntityGraphs { } /** - * Form of {@link #executeList(Query, EntityGraph, String)} accepting a TypedQuery + * Form of {@link #executeList(Query, EntityGraph, String)} accepting a + * {@link TypedQuery}. * * @param query The JPA Query * @param graph The graph to apply * - * @apiNote This signature assumes that the Query's return is an entity and that the graph - * applies to that entity's type. JPA does not necessarily require that, but it is by - * far the most common usage. + * @apiNote This signature assumes that the Query's return is an entity and that + * the graph applies to that entity's type. JPA does not necessarily + * require that, but it is by far the most common usage. */ @SuppressWarnings("unused") public static List executeList(TypedQuery query, EntityGraph graph) { @@ -172,9 +176,9 @@ public final class EntityGraphs { // but really, I think unwrapping as Hibernate's Query and using our // "proprietary" methods is better (this class is "proprietary" too). - /** - * Compares two entity graphs and returns {@code true} if they are equal, ignoring attribute order. + * Compares two entity graphs and returns {@code true} if they are equal, + * ignoring attribute order. * * @param Root entity type of BOTH graphs. * @param a Graph to compare. @@ -213,8 +217,8 @@ public final class EntityGraphs { } /** - * Compares two entity graph attribute node and returns {@code true} if they are equal, ignoring subgraph attribute - * order. + * Compares two entity graph attribute node and returns {@code true} if they are equal, + * ignoring subgraph attribute order. */ public static boolean areEqual(AttributeNode a, AttributeNode b) { if ( a == b ) { @@ -232,7 +236,8 @@ public final class EntityGraphs { } /** - * Compares two entity subgraph maps and returns {@code true} if they are equal, ignoring order. + * Compares two entity subgraph maps and returns {@code true} if they are equal, + * ignoring order. */ public static boolean areEqual(@SuppressWarnings("rawtypes") Map a, @SuppressWarnings("rawtypes") Map b) { if ( a == b ) { @@ -264,7 +269,8 @@ public final class EntityGraphs { } /** - * Compares two entity subgraphs and returns {@code true} if they are equal, ignoring attribute order. + * Compares two entity subgraphs and returns {@code true} if they are equal, + * ignoring attribute order. */ public static boolean areEqual(@SuppressWarnings("rawtypes") Subgraph a, @SuppressWarnings("rawtypes") Subgraph b) { if ( a == b ) { diff --git a/hibernate-core/src/main/java/org/hibernate/graph/Graph.java b/hibernate-core/src/main/java/org/hibernate/graph/Graph.java index 69920652f1..046418d843 100644 --- a/hibernate-core/src/main/java/org/hibernate/graph/Graph.java +++ b/hibernate-core/src/main/java/org/hibernate/graph/Graph.java @@ -14,30 +14,33 @@ import org.hibernate.metamodel.model.domain.PersistentAttribute; /** * A container for {@link AttributeNode} references. *

- * Acts as a "bridge" between JPA's {@link jakarta.persistence.EntityGraph} and {@link jakarta.persistence.Subgraph} + * Acts as a "bridge" between JPA's {@link jakarta.persistence.EntityGraph} + * and {@link jakarta.persistence.Subgraph}. * - * @author Strong Liu + * @author Strong Liu * @author Steve Ebersole * @author Andrea Boriero */ @SuppressWarnings({"unused", "UnusedReturnValue"}) public interface Graph extends GraphNode { /** - * Graphs apply only to ManagedTypes. Returns the ManagedType being graphed here. + * Graphs apply only to {@link jakarta.persistence.metamodel.ManagedType}s. + * + * @return the {@code ManagedType} being graphed here. */ ManagedDomainType getGraphedType(); /** - * Create a named (if passed `name` != null) root Graph. The `mutable` - * parameter controls whether the created Graph is mutable. + * Create a named root {@link Graph} if the given name is not null. * - * @throws CannotBecomeEntityGraphException For named attributes - * that are not entity valued + * @param mutable controls whether the resulting {@code Graph} is mutable + * + * @throws CannotBecomeEntityGraphException If the named attribute is not entity-valued */ RootGraph makeRootGraph(String name, boolean mutable) throws CannotBecomeEntityGraphException; /** - * Create a (mutable/immutable) SubGraph based on this Graph + * Create a (mutable or immutable) {@link SubGraph} rooted at this {@link Graph}. */ SubGraph makeSubGraph(boolean mutable); diff --git a/hibernate-core/src/main/java/org/hibernate/graph/GraphNode.java b/hibernate-core/src/main/java/org/hibernate/graph/GraphNode.java index 061cda0571..09fd21e811 100644 --- a/hibernate-core/src/main/java/org/hibernate/graph/GraphNode.java +++ b/hibernate-core/src/main/java/org/hibernate/graph/GraphNode.java @@ -7,8 +7,7 @@ package org.hibernate.graph; /** - * Commonality between {@link AttributeNode} and - * {@link Graph}. + * Commonality between {@link AttributeNode} and {@link Graph}. * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/graph/package-info.java b/hibernate-core/src/main/java/org/hibernate/graph/package-info.java index 110fc2e132..689b565e5a 100644 --- a/hibernate-core/src/main/java/org/hibernate/graph/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/graph/package-info.java @@ -8,7 +8,7 @@ /** * Implements and extends the JPA-defined {@linkplain jakarta.persistence.EntityGraph entity graph} API. * - * @apiNote This entire package (including sub-packages) is considered incubating + * @apiNote This entire package, including its subpackages, is considered incubating. */ @Incubating package org.hibernate.graph; diff --git a/hibernate-core/src/main/java/org/hibernate/graph/spi/AttributeNodeImplementor.java b/hibernate-core/src/main/java/org/hibernate/graph/spi/AttributeNodeImplementor.java index 9e6f3dcb98..4c6940c68e 100644 --- a/hibernate-core/src/main/java/org/hibernate/graph/spi/AttributeNodeImplementor.java +++ b/hibernate-core/src/main/java/org/hibernate/graph/spi/AttributeNodeImplementor.java @@ -17,7 +17,7 @@ import org.hibernate.metamodel.model.domain.ManagedDomainType; /** * Integration version of the AttributeNode contract * - * @author Strong Liu + * @author Strong Liu * @author Steve Ebersole */ public interface AttributeNodeImplementor extends AttributeNode, GraphNodeImplementor { diff --git a/hibernate-core/src/main/java/org/hibernate/graph/spi/GraphImplementor.java b/hibernate-core/src/main/java/org/hibernate/graph/spi/GraphImplementor.java index 3478538509..c609a6eb39 100644 --- a/hibernate-core/src/main/java/org/hibernate/graph/spi/GraphImplementor.java +++ b/hibernate-core/src/main/java/org/hibernate/graph/spi/GraphImplementor.java @@ -20,7 +20,7 @@ import org.hibernate.metamodel.model.domain.PersistentAttribute; /** * Integration version of the Graph contract * - * @author Strong Liu + * @author Strong Liu * @author Steve Ebersole * @author Andrea Boriero */ diff --git a/hibernate-core/src/main/java/org/hibernate/graph/spi/GraphNodeImplementor.java b/hibernate-core/src/main/java/org/hibernate/graph/spi/GraphNodeImplementor.java index 5cbcd69bf7..ffaa891863 100644 --- a/hibernate-core/src/main/java/org/hibernate/graph/spi/GraphNodeImplementor.java +++ b/hibernate-core/src/main/java/org/hibernate/graph/spi/GraphNodeImplementor.java @@ -12,7 +12,7 @@ import org.hibernate.graph.GraphNode; * Integration version of the GraphNode contract * * @author Steve Ebersole - * @author Strong Liu + * @author Strong Liu */ public interface GraphNodeImplementor extends GraphNode { @Override diff --git a/hibernate-core/src/main/java/org/hibernate/id/enhanced/package-info.java b/hibernate-core/src/main/java/org/hibernate/id/enhanced/package-info.java index f5bdd10eef..b2c3eca60b 100644 --- a/hibernate-core/src/main/java/org/hibernate/id/enhanced/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/id/enhanced/package-info.java @@ -6,7 +6,7 @@ */ /** - * Enhanced/improved versions of table and sequence based identifier generators targeting portability and unified - * configuration + * Enhanced/improved versions of table and sequence based identifier generators + * targeting portability and unified configuration. */ package org.hibernate.id.enhanced; diff --git a/hibernate-core/src/main/java/org/hibernate/internal/util/SerializationHelper.java b/hibernate-core/src/main/java/org/hibernate/internal/util/SerializationHelper.java index 7fe47ab26a..640200f507 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/util/SerializationHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/util/SerializationHelper.java @@ -22,8 +22,8 @@ import org.hibernate.internal.CoreMessageLogger; import org.hibernate.type.SerializationException; /** - *

Assists with the serialization process and performs additional functionality based - * on serialization.

+ * Assists with the serialization process and performs additional + * functionality based on serialization. *

*

*

- *

This class throws exceptions for invalid null inputs. - * Each method documents its behaviour in more detail.

+ * This class throws exceptions for invalid {@code null} inputs. * - * @author Nissim Karpenstein - * @author Janek Bogucki - * @author Daniel Rall + * @author Nissim Karpenstein + * @author Janek Bogucki + * @author Daniel Rall * @author Stephen Colebourne * @author Jeff Varszegi * @author Gary Gregory @@ -53,15 +52,15 @@ public final class SerializationHelper { //----------------------------------------------------------------------- /** - *

Deep clone an Object using serialization.

+ * Deep clone an object using serialization. *

- *

This is many times slower than writing clone methods by hand + * This is many times slower than writing clone methods by hand * on all objects in your object graph. However, for complex object * graphs, or for those that don't support deep cloning this can * be a simple alternative implementation. Of course all the objects - * must be Serializable.

+ * must be {@code Serializable}. * - * @param object the Serializable object to clone + * @param object the {@code Serializable} object to clone * * @return the cloned object * @@ -79,19 +78,19 @@ public final class SerializationHelper { //----------------------------------------------------------------------- /** - *

Serializes an Object to the specified stream.

+ *

Serializes an object to the given stream. *

- *

The stream will be closed once the object is written. - * This avoids the need for a finally clause, and maybe also exception - * handling, in the application code.

+ * The stream will be closed once the object is written. + * This avoids the need for a finally clause, and maybe also + * for exception handling, in the application code. *

- *

The stream passed in is not buffered internally within this method. - * This is the responsibility of your application if desired.

+ * The stream passed in is not buffered internally within this + * method. This is the responsibility of the caller, if desired. * * @param obj the object to serialize to bytes, may be null * @param outputStream the stream to write to, must not be null * - * @throws IllegalArgumentException if outputStream is null + * @throws IllegalArgumentException if {@code outputStream} is null * @throws SerializationException (runtime) if the serialization fails */ public static void serialize(Serializable obj, OutputStream outputStream) throws SerializationException { @@ -130,8 +129,8 @@ public final class SerializationHelper { } /** - *

Serializes an Object to a byte array for - * storage/serialization.

+ * Serializes an object to a byte array for storage or + * externalization. * * @param obj the object to serialize to bytes * @@ -149,8 +148,8 @@ public final class SerializationHelper { //----------------------------------------------------------------------- /** - * Deserializes an object from the specified stream using the Thread Context - * ClassLoader (TCCL). + * Deserializes an object from the given stream using the + * Thread Context ClassLoader (TCCL). *

* Delegates to {@link #doDeserialize} * @@ -158,7 +157,7 @@ public final class SerializationHelper { * * @return the deserialized object * - * @throws IllegalArgumentException if inputStream is null + * @throws IllegalArgumentException if {@code inputStream} is null * @throws SerializationException (runtime) if the serialization fails */ public static T deserialize(InputStream inputStream) throws SerializationException { @@ -179,16 +178,16 @@ public final class SerializationHelper { } /** - * Deserializes an object from the specified stream using the Thread Context - * ClassLoader (TCCL). If there is no TCCL set, the classloader of the calling - * class is used. + * Deserializes an object from the given stream using the + * Thread Context ClassLoader (TCCL). If there is no TCCL set, + * the classloader of the calling class is used. *

- * The stream will be closed once the object is read. This avoids the need - * for a finally clause, and maybe also exception handling, in the application - * code. + * The stream will be closed once the object is read. This + * avoids the need for a finally clause, and maybe also for + * exception handling, in the application code. *

- * The stream passed in is not buffered internally within this method. This is - * the responsibility of the caller, if desired. + * The stream passed in is not buffered internally within this + * method. This is the responsibility of the caller, if desired. * * @param inputStream the serialized object input stream, must not be null * @param loader The classloader to use @@ -245,9 +244,9 @@ public final class SerializationHelper { } /** - * Deserializes an object from an array of bytes using the Thread Context - * ClassLoader (TCCL). If there is no TCCL set, the classloader of the calling - * class is used. + * Deserializes an object from an array of bytes using the + * Thread Context ClassLoader (TCCL). If there is no TCCL set, + * the classloader of the calling class is used. *

* Delegates to {@link #deserialize(byte[], ClassLoader)} * @@ -290,10 +289,10 @@ public final class SerializationHelper { /** * By default, to resolve the classes being deserialized JDK serialization uses the - * classes loader which loaded the class which initiated the deserialization call. Here - * that would be hibernate classes. However, there are cases where that is not the correct + * classes loader which loaded the class which initiated the deserialization call. Here + * that would be Hibernate classes. However, there are cases where that is not the correct * class loader to use; mainly here we are worried about deserializing user classes in - * environments (app servers, etc) where Hibernate is on a parent classes loader. To + * environments (app servers, etc) where Hibernate is on a parent classes loader. To * facilitate for that we allow passing in the class loader we should use. */ private static final class CustomObjectInputStream extends ObjectInputStream { @@ -312,9 +311,6 @@ public final class SerializationHelper { this.loader3 = loader3; } - /** - * {@inheritDoc} - */ @Override protected Class resolveClass(ObjectStreamClass v) throws IOException, ClassNotFoundException { final String className = v.getName(); diff --git a/hibernate-core/src/main/java/org/hibernate/jdbc/ReturningWork.java b/hibernate-core/src/main/java/org/hibernate/jdbc/ReturningWork.java index 4968c0713c..fc5a6b3963 100644 --- a/hibernate-core/src/main/java/org/hibernate/jdbc/ReturningWork.java +++ b/hibernate-core/src/main/java/org/hibernate/jdbc/ReturningWork.java @@ -10,9 +10,13 @@ import java.sql.Connection; import java.sql.SQLException; /** - * A discrete piece of work following the lines of {@link Work} but returning a result. + * A discrete piece of work making use of a {@linkplain Connection JDBC connection} + * and returning a result. * * @author Steve Ebersole + * + * @see Work + * @see org.hibernate.SharedSessionContract#doReturningWork(ReturningWork) */ @FunctionalInterface public interface ReturningWork { diff --git a/hibernate-core/src/main/java/org/hibernate/jdbc/Work.java b/hibernate-core/src/main/java/org/hibernate/jdbc/Work.java index 5d71a701c7..fdceede594 100644 --- a/hibernate-core/src/main/java/org/hibernate/jdbc/Work.java +++ b/hibernate-core/src/main/java/org/hibernate/jdbc/Work.java @@ -10,9 +10,12 @@ import java.sql.Connection; import java.sql.SQLException; /** - * Contract for performing a discrete piece of JDBC work. + * A discrete piece of work making use of a {@linkplain Connection JDBC connection}. * * @author Steve Ebersole + * + * @see ReturningWork + * @see org.hibernate.SharedSessionContract#doWork(Work) */ @FunctionalInterface public interface Work { diff --git a/hibernate-core/src/main/java/org/hibernate/jdbc/package-info.java b/hibernate-core/src/main/java/org/hibernate/jdbc/package-info.java index e48630cc9d..71d359a486 100644 --- a/hibernate-core/src/main/java/org/hibernate/jdbc/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/jdbc/package-info.java @@ -6,10 +6,15 @@ */ /** - * Abstracts certain very specific aspects of the low-level interaction between Hibernate - * and JDBC. + * Defines the notion of a unit of JDBC work that may be executed by the session + * at the request of the client. *

- * Defines {@link org.hibernate.jdbc.Work}, {@link org.hibernate.jdbc.ReturningWork} and - * {@link org.hibernate.jdbc.Expectation}, along with some exceptions + * Execution of a unit of work may be requested by calling + * {@link org.hibernate.SharedSessionContract#doWork(org.hibernate.jdbc.Work)} or + * {@link org.hibernate.SharedSessionContract#doReturningWork(org.hibernate.jdbc.ReturningWork)}. + * + * @see org.hibernate.jdbc.Work + * @see org.hibernate.jdbc.ReturningWork + * @see org.hibernate.jdbc.Expectation */ package org.hibernate.jdbc; diff --git a/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackRegistryImpl.java b/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackRegistryImpl.java index a8acb656cc..d9bc489859 100644 --- a/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackRegistryImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackRegistryImpl.java @@ -20,7 +20,7 @@ import org.hibernate.jpa.event.spi.CallbackType; /** * Keep track of all lifecycle callbacks and listeners for a given persistence unit * - * @author Kabir Khan + * @author Kabir Khan * @author Steve Ebersole * @author Sanne Grinovero */ diff --git a/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/EntityCallback.java b/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/EntityCallback.java index fd23d5459d..ca713cfc42 100644 --- a/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/EntityCallback.java +++ b/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/EntityCallback.java @@ -17,7 +17,7 @@ import org.hibernate.resource.beans.spi.ManagedBeanRegistry; /** * Represents a JPA callback on the entity itself * - * @author Kabir Khan + * @author Kabir Khan * @author Steve Ebersole */ final class EntityCallback extends AbstractCallback { diff --git a/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/ListenerCallback.java b/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/ListenerCallback.java index a8bf663a8a..7d9ead1b6c 100644 --- a/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/ListenerCallback.java +++ b/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/ListenerCallback.java @@ -18,7 +18,7 @@ import org.hibernate.resource.beans.spi.ManagedBeanRegistry; /** * Represents a JPA callback using a dedicated listener * - * @author Kabir Khan + * @author Kabir Khan * @author Steve Ebersole */ class ListenerCallback extends AbstractCallback { diff --git a/hibernate-core/src/main/java/org/hibernate/jpa/event/spi/Callback.java b/hibernate-core/src/main/java/org/hibernate/jpa/event/spi/Callback.java index 58752b3381..f6a59fd58e 100644 --- a/hibernate-core/src/main/java/org/hibernate/jpa/event/spi/Callback.java +++ b/hibernate-core/src/main/java/org/hibernate/jpa/event/spi/Callback.java @@ -15,7 +15,7 @@ import java.io.Serializable; * or an annotated method on a separate "listener" class. This contract presents * a unified abstraction for both cases * - * @author Kabir Khan + * @author Kabir Khan * @author Steve Ebersole */ public interface Callback extends Serializable { diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ModelPart.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ModelPart.java index 4a1d94ae11..d247cf61b8 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ModelPart.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ModelPart.java @@ -21,8 +21,8 @@ import org.hibernate.type.descriptor.java.JavaType; /** * Base descriptor, within the mapping model, for any part of the - * application's domain model - an attribute, - * an entity identifier, collection elements, etc + * application's domain model: an attribute, an entity identifier, + * collection elements, and so on. * * @see DomainResultProducer * @see jakarta.persistence.metamodel.Bindable diff --git a/hibernate-core/src/main/java/org/hibernate/proxy/HibernateProxy.java b/hibernate-core/src/main/java/org/hibernate/proxy/HibernateProxy.java index 25eb14a6ad..cb442104ed 100644 --- a/hibernate-core/src/main/java/org/hibernate/proxy/HibernateProxy.java +++ b/hibernate-core/src/main/java/org/hibernate/proxy/HibernateProxy.java @@ -7,21 +7,25 @@ package org.hibernate.proxy; import java.io.Serializable; +import org.hibernate.Internal; import org.hibernate.engine.spi.PrimeAmongSecondarySupertypes; /** - * Marker interface for entity proxies + * Interface implemented directly by entity proxies, exposing + * access to the associated {@link LazyInitializer}. * * @author Gavin King */ public interface HibernateProxy extends Serializable, PrimeAmongSecondarySupertypes { /** - * Extract the LazyInitializer from the object, if - * and only if the object is actually an HibernateProxy. - * If not, null is returned. - * @param object any entity - * @return either null (if object is not an HibernateProxy) or the LazyInitializer of the HibernateProxy. + * Extract the {@link LazyInitializer} from the given object, + * if and only if the object is actually a proxy. Otherwise, + * return a null value. + * + * @param object any reference to an entity + * @return the associated {@link LazyInitializer} if the given + * object is a proxy, or {@code null} otherwise. */ static LazyInitializer extractLazyInitializer(final Object object) { if ( object instanceof PrimeAmongSecondarySupertypes ) { @@ -42,17 +46,21 @@ public interface HibernateProxy extends Serializable, PrimeAmongSecondarySuperty Object writeReplace(); /** - * Get the underlying lazy initialization handler. + * Get the {@linkplain LazyInitializer lazy initialization handler} + * for this object. * - * @return The lazy initializer. + * @return The associated {@link LazyInitializer}. */ LazyInitializer getHibernateLazyInitializer(); /** - * Special internal contract to optimize type checking + * Special internal contract to optimize type checking. + * * @see PrimeAmongSecondarySupertypes - * @return this same instance + * + * @return this instance */ + @Internal @Override default HibernateProxy asHibernateProxy() { return this; diff --git a/hibernate-core/src/main/java/org/hibernate/proxy/LazyInitializer.java b/hibernate-core/src/main/java/org/hibernate/proxy/LazyInitializer.java index 5483dc5fa9..4fced0d558 100644 --- a/hibernate-core/src/main/java/org/hibernate/proxy/LazyInitializer.java +++ b/hibernate-core/src/main/java/org/hibernate/proxy/LazyInitializer.java @@ -10,7 +10,7 @@ import org.hibernate.HibernateException; import org.hibernate.engine.spi.SharedSessionContractImplementor; /** - * Handles fetching of the underlying entity for a proxy + * Handles fetching of the underlying entity for a proxy. * * @author Gavin King * @author Steve Ebersole @@ -20,6 +20,8 @@ public interface LazyInitializer { * Initialize the proxy, fetching the target entity if necessary. * * @throws HibernateException Indicates a problem initializing the proxy. + * + * @see org.hibernate.Hibernate#initialize(Object) */ void initialize() throws HibernateException; @@ -33,8 +35,9 @@ public interface LazyInitializer { } /** - * Retrieve the identifier value for the entity our owning proxy represents. - * + * Retrieve the identifier value for the entity our owning proxy represents, + * without initializing the proxy. + *

* When JPA proxy compliance is enabled the proxy is initialized. * * @return The identifier value. @@ -66,6 +69,8 @@ public interface LazyInitializer { * Is the proxy uninitialized? * * @return True if uninitialized; false otherwise. + * + * @see org.hibernate.Hibernate#isInitialized(Object) */ boolean isUninitialized(); @@ -104,10 +109,10 @@ public interface LazyInitializer { /** * Is the proxy read-only? - * + *

* The read-only/modifiable setting is not available when the proxy is * detached or its associated session is closed. - * + *

* To check if the read-only/modifiable setting is available: * * @return true, if this proxy is read-only; false, otherwise @@ -126,7 +131,7 @@ public interface LazyInitializer { * proxy is initialized, its implementation will have the same read-only/ * modifiable setting as the proxy. In read-only mode, no snapshot is * maintained and the instance is never dirty checked. - * + *

* If the associated proxy already has the specified read-only/modifiable * setting, then this method does nothing. * diff --git a/hibernate-core/src/main/java/org/hibernate/proxy/ProxyFactory.java b/hibernate-core/src/main/java/org/hibernate/proxy/ProxyFactory.java index 8e5555720e..bdd6013c2a 100644 --- a/hibernate-core/src/main/java/org/hibernate/proxy/ProxyFactory.java +++ b/hibernate-core/src/main/java/org/hibernate/proxy/ProxyFactory.java @@ -14,7 +14,7 @@ import org.hibernate.engine.spi.SharedSessionContractImplementor; import org.hibernate.type.CompositeType; /** - * Contract for run-time, proxy-based lazy initialization proxies. + * Contract for runtime, proxy-based lazy initialization proxies. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/proxy/map/package-info.java b/hibernate-core/src/main/java/org/hibernate/proxy/map/package-info.java new file mode 100644 index 0000000000..d91d5394b6 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/proxy/map/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ + +/** + * Proxies for entity objects represented as Java {@linkplain java.util.Map maps}. + */ +package org.hibernate.proxy.map; diff --git a/hibernate-core/src/main/java/org/hibernate/proxy/package-info.java b/hibernate-core/src/main/java/org/hibernate/proxy/package-info.java index 4a5953db27..06dec51cdf 100644 --- a/hibernate-core/src/main/java/org/hibernate/proxy/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/proxy/package-info.java @@ -7,6 +7,7 @@ /** * This package defines a framework for lazy-initializing entity proxies. + *

* The interfaces here and all their implementations belong to an SPI. * They are not part of the public API of Hibernate, and are not meant to * be used directly by typical programs which use Hibernate for persistence. diff --git a/hibernate-core/src/main/java/org/hibernate/proxy/pojo/BasicLazyInitializer.java b/hibernate-core/src/main/java/org/hibernate/proxy/pojo/BasicLazyInitializer.java index f780eb9487..ffd6d50071 100644 --- a/hibernate-core/src/main/java/org/hibernate/proxy/pojo/BasicLazyInitializer.java +++ b/hibernate-core/src/main/java/org/hibernate/proxy/pojo/BasicLazyInitializer.java @@ -14,7 +14,7 @@ import org.hibernate.proxy.AbstractLazyInitializer; import org.hibernate.type.CompositeType; /** - * Lazy initializer for POJOs + * Lazy initializer for plain Java objects. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/proxy/pojo/package-info.java b/hibernate-core/src/main/java/org/hibernate/proxy/pojo/package-info.java new file mode 100644 index 0000000000..3ba8d33691 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/proxy/pojo/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ + +/** + * Proxies for plain Java objects. + */ +package org.hibernate.proxy.pojo; diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/DomainPathPart.java b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/DomainPathPart.java index 0c78b057ab..8ee17e4f86 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/DomainPathPart.java +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/DomainPathPart.java @@ -13,7 +13,7 @@ import org.hibernate.query.sqm.tree.domain.SqmPath; import org.hibernate.query.sqm.tree.expression.SqmExpression; /** - * Specialized "intermediate" SemanticPathPart for processing domain model paths + * Specialized "intermediate" SemanticPathPart for processing domain model paths/ * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/HqlParseTreeBuilder.java b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/HqlParseTreeBuilder.java index d51a09c4a3..c004bd296b 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/HqlParseTreeBuilder.java +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/HqlParseTreeBuilder.java @@ -17,7 +17,7 @@ import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.Token; /** - * Leverages Antlr to build a parse tree from an HQL query + * Leverages ANTLR to build a parse tree from an HQL query. * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QualifiedJoinPathConsumer.java b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QualifiedJoinPathConsumer.java index e7e0665c85..0b19fc248d 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QualifiedJoinPathConsumer.java +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QualifiedJoinPathConsumer.java @@ -30,7 +30,7 @@ import org.hibernate.query.sqm.tree.from.SqmRoot; import org.jboss.logging.Logger; /** - * Specialized "intermediate" SemanticPathPart for processing domain model paths + * Specialized "intermediate" SemanticPathPart for processing domain model paths. * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QualifiedJoinPredicatePathConsumer.java b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QualifiedJoinPredicatePathConsumer.java index b0a90d239e..9762d135c7 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QualifiedJoinPredicatePathConsumer.java +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QualifiedJoinPredicatePathConsumer.java @@ -24,7 +24,7 @@ import org.hibernate.query.sqm.tree.select.SqmSubQuery; /** * Specialized consumer for processing domain model paths occurring as part - * of a join predicate + * of a join predicate. * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java index 0e780d56f7..9bd704cd81 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java @@ -245,7 +245,7 @@ import static org.hibernate.type.spi.TypeConfiguration.isJdbcTemporalType; /** * Responsible for producing an SQM using visitation over an HQL parse tree generated by - * Antlr via {@link HqlParseTreeBuilder}. + * ANTLR via {@link HqlParseTreeBuilder}. * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/StandardHqlTranslator.java b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/StandardHqlTranslator.java index 014092e515..3d9b63062c 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/StandardHqlTranslator.java +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/StandardHqlTranslator.java @@ -33,7 +33,7 @@ import org.antlr.v4.runtime.dfa.DFA; import org.antlr.v4.runtime.misc.ParseCancellationException; /** - * Standard implementation of SemanticQueryInterpreter + * Standard implementation of {@link HqlTranslator}. * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/package-info.java new file mode 100644 index 0000000000..c7774582c3 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Implementation of the SPIs for HQL support. + */ +package org.hibernate.query.hql.internal; diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/hql/package-info.java index e43d3ab3ab..2bab51afb8 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/hql/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/package-info.java @@ -6,11 +6,30 @@ */ /** - * Package defining support for HQL queries (including supprt for JPQL - * as a subset of HQL). + * Package defining support for HQL, including JPQL as a subset of HQL. *

- * This includes transformation via Antlr, {@link org.hibernate.query.Query} - * manipulation and execution + * Concerns handled by subpackages include: + *

+ *

+ * Translation of HQL to SQL involves the following steps: + *

* * @see org.hibernate.query.hql.HqlTranslator * @see org.hibernate.query.hql.spi.SqmQueryImplementor diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/spi/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/hql/spi/package-info.java new file mode 100644 index 0000000000..8a569b2593 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/spi/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * SPIs for HQL support. + */ +package org.hibernate.query.hql.spi; diff --git a/hibernate-core/src/main/java/org/hibernate/query/procedure/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/procedure/package-info.java new file mode 100644 index 0000000000..76f498550f --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/procedure/package-info.java @@ -0,0 +1,16 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Support SQL functions in the SQM model. + * + * @see org.hibernate.query.sqm.function.SqmFunctionDescriptor + */ +@Incubating +package org.hibernate.query.procedure; + +import org.hibernate.Incubating; diff --git a/hibernate-core/src/main/java/org/hibernate/query/results/complete/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/results/complete/package-info.java index d5a1ed437f..d0bbc290c8 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/results/complete/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/query/results/complete/package-info.java @@ -7,8 +7,8 @@ /** * Support for immutable result/fetch builder graph nodes built from static sources - * such as JPA's {@link jakarta.persistence.SqlResultSetMapping} or `hbm.xml` mapping - * {@code }. + * such as {@link jakarta.persistence.SqlResultSetMapping} or the {@code hbm.xml} + * mapping element {@code }. *

* The differentiation from {@link org.hibernate.query.results.dynamic} is that here * we have up-front knowledge of the complete mapping graph and can perform optimized diff --git a/hibernate-core/src/main/java/org/hibernate/query/results/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/results/package-info.java index 7f3eb8264f..6370afc92d 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/results/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/query/results/package-info.java @@ -6,18 +6,20 @@ */ /** - * Support for defining result-set mappings used in {@link org.hibernate.query.NativeQuery} - * and {@link org.hibernate.procedure.ProcedureCall} / {@link jakarta.persistence.StoredProcedureQuery}. - * These result-set mappings are used to map the values in the JDBC {@link java.sql.ResultSet} - * into the query result graph. + * Support for defining result set mappings used in {@link org.hibernate.query.NativeQuery}, + * {@link org.hibernate.procedure.ProcedureCall}, and {@link jakarta.persistence.StoredProcedureQuery}. + * These result set mappings are used to map the values in the JDBC {@link java.sql.ResultSet} into + * the query result graph. *

- * Handling the different sources of results and fetches is split into multiple packages and - * multiple impls for performance reasons. The classes in {@link org.hibernate.query.results.complete} - * represent result/fetch definitions that are completely known up-front and are faster to - * resolve. The definitions in {@link org.hibernate.query.results.dynamic} are built incrementally - * via Hibernate's {@link org.hibernate.query.NativeQuery} contract need to resolve themselves - * against other dynamic result/fetch definitions and therefore take more resources to resolve. - * The classes in {@link org.hibernate.query.results.implicit} represent results that are implied. + * Subpackages handle different sources of result set mappings: + *

    + *
  • {@link org.hibernate.query.results.complete} handles result set mappings which are completely + * known upfront and are faster to resolve. + *
  • {@link org.hibernate.query.results.dynamic} handles result set mappings which are defined + * incrementally via the {@link org.hibernate.query.NativeQuery} interface and need to resolve + * themselves against other dynamic mappings. These take more resources to resolve. + *
  • {@link org.hibernate.query.results.implicit} handles implicit result set mappings. + *
* * @see org.hibernate.query.results.ResultSetMapping * diff --git a/hibernate-core/src/main/java/org/hibernate/query/sql/internal/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sql/internal/package-info.java new file mode 100644 index 0000000000..6bc67f4c80 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/sql/internal/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Implementation of the SPIs for native SQL query support. + */ +package org.hibernate.query.sql.internal; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sql/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sql/package-info.java index 19e733c71c..f698e01573 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sql/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sql/package-info.java @@ -6,7 +6,7 @@ */ /** - * Package defining support for native SQL queries + * Package defining support for native SQL queries. * * @see org.hibernate.query.NativeQuery * @see org.hibernate.query.sql.spi.NativeQueryImplementor diff --git a/hibernate-core/src/main/java/org/hibernate/query/sql/spi/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sql/spi/package-info.java new file mode 100644 index 0000000000..d788793821 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/sql/spi/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * SPIs for native SQL query support. + */ +package org.hibernate.query.sql.spi; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/PatternBasedSqmFunctionDescriptor.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/PatternBasedSqmFunctionDescriptor.java index 1871bffff8..42dda026ea 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/PatternBasedSqmFunctionDescriptor.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/PatternBasedSqmFunctionDescriptor.java @@ -35,7 +35,7 @@ import java.util.List; * last parameter may be a vararg, indicated with the syntax * {@code (?1 || ?2...)}. * - * @author Alexey Loubyansky + * @author Alexey Loubyansky */ public class PatternBasedSqmFunctionDescriptor extends AbstractSqmSelfRenderingFunctionDescriptor { diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/package-info.java new file mode 100644 index 0000000000..745dace122 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/package-info.java @@ -0,0 +1,38 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Package defining support for HQL, including JPQL as a subset of HQL. + *

+ * Concerns handled by subpackages include: + *

    + *
  • query language transformation via ANTLR, and + *
  • query execution via an instance of {@link org.hibernate.query.Query}. + *
+ *

+ * Translation of HQL to SQL involves the following steps: + *

    + *
  • First, the ANTLR-generated + * {@link org.hibernate.grammars.hql.HqlLexer tokenizer} and + * {@link org.hibernate.grammars.hql.HqlParser parser} work + * in series to parse the text of the query and produce an AST. + *
  • Next, {@link org.hibernate.query.hql.internal.SemanticQueryBuilder} + * translates the AST into an instance of the SQM (Semantic Query + * Model) defined in {@link org.hibernate.query.sqm}. + *
  • Next, {@link org.hibernate.query.sqm.sql.internal.StandardSqmTranslator} + * transforms the SQM tree and produces a SQL AST, an instance of + * the syntax tree defined by {@link org.hibernate.sql.ast.tree}. + *
  • Finally, a SQL dialect-specific implementation of + * {@link org.hibernate.sql.ast.SqlAstTranslator} produces an + * executable SQL statement. + *
+ * + * @see org.hibernate.query.hql.HqlTranslator + * @see org.hibernate.query.hql.spi.SqmQueryImplementor + * @see org.hibernate.query.sqm.spi.NamedSqmQueryMemento + */ +package org.hibernate.query.sqm.function; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/package-info.java index b1deeceda0..b92dd7ff44 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/package-info.java @@ -6,26 +6,29 @@ */ /** - * @asciidoc + * This package defines a semantic model of HQL queries. * - * = Semantic Query Model (SQM) + *

Semantic Query Model (SQM)

* - * SQM is a tree (AST) based representation of the *semantic* interpretation of a query - * (HQL or Criteria). It is semantic in that it is more than a simple syntax tree. + * SQM is a tree (AST) based representation of the semantic interpretation of a query + * (HQL or Criteria). It is "semantic" in the sense that it is more than a simple syntax + * tree. * - * == HQL + *

HQL

* - * HQL is interpreted into an SQM with the help of Antlr parsing library. The main - * entry point into that transformation is {@link org.hibernate.query.hql.internal.SemanticQueryBuilder} + * HQL is interpreted into an SQM with the help of ANTRL parsed generator. The entry point + * into the transformation is {@link org.hibernate.query.hql.internal.SemanticQueryBuilder}. * - * == Criteria + *

Criteria queries

* - * The SQM tree implements the JPA Criteria contracts. Hibernate's implementation of the - * JPA {@link jakarta.persistence.criteria.CriteriaBuilder} contract - * ({@link org.hibernate.query.sqm.internal.SqmCriteriaNodeBuilder}) returns SQM nodes - * that are arranged into an SQM tree via the normal JPA Criteria building approach + * The SQM tree implements the JPA criteria query contracts. Our implementation of the JPA + * {@link jakarta.persistence.criteria.CriteriaBuilder} interface is + * {@link org.hibernate.query.sqm.internal.SqmCriteriaNodeBuilder}. It produced SQM nodes + * that are arranged into an SQM tree via the standard JPA criteria building approach. * - * Note that this entire package is considered incubating + * @apiNote This entire package is in an incubating state. */ -@org.hibernate.Incubating +@Incubating package org.hibernate.query.sqm; + +import org.hibernate.Incubating; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/cte/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/cte/package-info.java new file mode 100644 index 0000000000..a6c8e038f7 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/cte/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Nodes representing common table expressions (CTE) in the SQM tree. + */ +package org.hibernate.query.sqm.tree.cte; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/delete/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/delete/package-info.java new file mode 100644 index 0000000000..c6cb1aace8 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/delete/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Nodes representing {@code delete} statements in the SQM tree. + */ +package org.hibernate.query.sqm.tree.delete; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/package-info.java new file mode 100644 index 0000000000..4273d30c0d --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Nodes representing path expressions in the SQM tree. + */ +package org.hibernate.query.sqm.tree.domain; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/package-info.java new file mode 100644 index 0000000000..afb89b7c64 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Nodes representing expressions in the SQM tree. + */ +package org.hibernate.query.sqm.tree.expression; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/package-info.java new file mode 100644 index 0000000000..711bcb80f9 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Nodes representing root entities and joins in the SQM tree. + */ +package org.hibernate.query.sqm.tree.from; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/package-info.java new file mode 100644 index 0000000000..e1e4859fca --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Nodes representing {@code insert} statements in the SQM tree. + */ +package org.hibernate.query.sqm.tree.insert; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/package-info.java index 458d0b10b6..1eca306f16 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/package-info.java @@ -9,11 +9,11 @@ * This package contains the classes that make up the SQM tree nodes. * * @apiNote the choice to prefix all SQM tree node class names with Sqm was - * made to help make consumers easier to write - consumers are likely to - * have classes with the same purpose in their AST (e.g. the notion of a - * "From". But if both projects define a class named {@code From} then the - * consumer would have to fully qualify one reference to distinguish. - * That makes for overly long code. Prefixing the names of classes helps - * alleviate that problem. + * made to help make consumers easier to write. Consumers are likely to + * have classes with the same purpose in their AST (e.g. the notion of a + * "From". But if both projects define a class named {@code From} then the + * consumer would have to fully qualify one reference to distinguish. + * That makes for overly long code. Prefixing the names of classes helps + * alleviate that problem. */ package org.hibernate.query.sqm.tree; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/package-info.java new file mode 100644 index 0000000000..6f963c5af0 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Nodes representing logical predicates in the SQM tree. + */ +package org.hibernate.query.sqm.tree.predicate; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/package-info.java new file mode 100644 index 0000000000..874b0168cc --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Nodes representing {@code select} statements in the SQM tree. + */ +package org.hibernate.query.sqm.tree.select; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/update/package-info.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/update/package-info.java new file mode 100644 index 0000000000..dd2a31173e --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/update/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Nodes representing {@code update} statements in the SQM tree. + */ +package org.hibernate.query.sqm.tree.update; diff --git a/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/DdlTransactionIsolator.java b/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/DdlTransactionIsolator.java index f7f3d30d55..271d30b670 100644 --- a/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/DdlTransactionIsolator.java +++ b/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/DdlTransactionIsolator.java @@ -11,9 +11,9 @@ import java.sql.Connection; import org.hibernate.tool.schema.internal.exec.JdbcContext; /** - * Provides access to a Connection that is isolated from - * any "current transaction" with the designed purpose of - * performing DDL commands + * Provides access to a {@link Connection} that is isolated from any + * "current transaction" with the designated purpose of performing DDL + * commands. * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/SynchronizationRegistryImplementor.java b/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/SynchronizationRegistryImplementor.java index 5d3c51b11f..2db00f0dd8 100644 --- a/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/SynchronizationRegistryImplementor.java +++ b/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/SynchronizationRegistryImplementor.java @@ -7,7 +7,7 @@ package org.hibernate.resource.transaction.spi; /** - * SPI contract for SynchronizationRegistry implementors. + * SPI contract for {@link SynchronizationRegistry} implementors. * * @author Steve Ebersole */ @@ -18,8 +18,8 @@ public interface SynchronizationRegistryImplementor extends SynchronizationRegis void notifySynchronizationsBeforeTransactionCompletion(); /** - * Delegates the {@link jakarta.transaction.Synchronization#afterCompletion} call to each registered Synchronization. Will also - * clear the registered Synchronizations after all have been notified. + * Delegates the {@link jakarta.transaction.Synchronization#afterCompletion} call to each registered Synchronization. + * Will also clear the registered {@code Synchronization}s after all have been notified. * * @param status The transaction status, per {@link jakarta.transaction.Status} constants */ diff --git a/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/TransactionCoordinatorBuilder.java b/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/TransactionCoordinatorBuilder.java index 192676851e..5d01b58891 100644 --- a/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/TransactionCoordinatorBuilder.java +++ b/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/TransactionCoordinatorBuilder.java @@ -22,7 +22,7 @@ import org.hibernate.tool.schema.internal.exec.JdbcContext; */ public interface TransactionCoordinatorBuilder extends Service { /** - * Access to options to are specific to each TransactionCoordinator instance + * Access to options to are specific to each {@link TransactionCoordinator} instance. */ interface Options { /** diff --git a/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/TransactionCoordinatorOwner.java b/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/TransactionCoordinatorOwner.java index 2863165386..a1560fd00b 100644 --- a/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/TransactionCoordinatorOwner.java +++ b/hibernate-core/src/main/java/org/hibernate/resource/transaction/spi/TransactionCoordinatorOwner.java @@ -9,7 +9,7 @@ package org.hibernate.resource.transaction.spi; import org.hibernate.resource.jdbc.spi.JdbcSessionOwner; /** - * Models an owner of a TransactionCoordinator. Mainly used in 2 ways:
    + * Models an owner of a {@link TransactionCoordinator}. Mainly used in 2 ways:
      *
    • * First to allow the coordinator to determine if its owner is still active (open, etc). *
    • diff --git a/hibernate-core/src/main/java/org/hibernate/result/Outputs.java b/hibernate-core/src/main/java/org/hibernate/result/Outputs.java index e199741689..482a9776f2 100644 --- a/hibernate-core/src/main/java/org/hibernate/result/Outputs.java +++ b/hibernate-core/src/main/java/org/hibernate/result/Outputs.java @@ -8,7 +8,7 @@ package org.hibernate.result; /** * Represents the outputs of executing a JDBC statement accounting for mixing of result sets and update counts - * hiding the complexity (IMO) of how this is exposed in the JDBC API. + * hiding the complexity of how this is exposed in the JDBC API. *

      * The outputs are exposed as a group of {@link Output} objects, each representing a single result set or update count. * Conceptually, Result presents those Returns as an iterator. diff --git a/hibernate-core/src/main/java/org/hibernate/spi/DotIdentifierSequence.java b/hibernate-core/src/main/java/org/hibernate/spi/DotIdentifierSequence.java index 9c781e2441..a43008b673 100644 --- a/hibernate-core/src/main/java/org/hibernate/spi/DotIdentifierSequence.java +++ b/hibernate-core/src/main/java/org/hibernate/spi/DotIdentifierSequence.java @@ -7,43 +7,55 @@ package org.hibernate.spi; /** - * Hibernate often deals with compound names/paths. This interface defines a - * standard way of interacting with them + * A compound name. + *

      + * Hibernate often deals with compound names/paths. + * This interface defines a standard way of interacting with them. * * @author Steve Ebersole */ public interface DotIdentifierSequence { /** - * The parent sequence part. E.g., given the sequence `a.b.c`, - * this returns `a.b` + * The parent sequence part. + *

      + * Given the sequence {@code a.b.c}, returns the sequence + * {@code a.b}. */ DotIdentifierSequence getParent(); /** - * The name of this sequence part. E.g., given the sequence `a.b.c`, - * this returns `c` + * The name of this leaf sequence part. + *

      + * Given the sequence {@code a.b.c}, returns the string + * {@code "c"}. */ String getLocalName(); /** - * The full sequence text. E.g., given the sequence `a.b.c`, - * this returns `a.b.c` + * The full sequence text. + *

      + * Given the sequence {@code a.b.c}, returns the string + * {@code "a.b.c"}. * * @implNote This method may dynamically build the returned - * String and should be avoided for critical paths (comparisons, e.g.). + * string and should be avoided for critical paths + * (comparisons,for example). */ String getFullPath(); /** - * Add a new part to the end of this sequence, returning the new - * representation. E.g., given the sequence `a.b.c` and appending `d` - * would return a new sequence `a.b.c.d` + * Append a new part to the end of this sequence, returning + * the new representation. + *

      + * Given the sequence {@code a.b.c}, appending {@code d} + * results in the new sequence {@code a.b.c.d}. */ DotIdentifierSequence append(String subPathName); /** - * Is this sequence node the root of the sequence. Same as checking - * the nullness of {@link #getParent()} + * Is this sequence node the root of the sequence? + *

      + * Same as checking the nullness of {@link #getParent()}. */ default boolean isRoot() { return getParent() == null; diff --git a/hibernate-core/src/main/java/org/hibernate/spi/EntityIdentifierNavigablePath.java b/hibernate-core/src/main/java/org/hibernate/spi/EntityIdentifierNavigablePath.java index ee23398c3f..4b4be36811 100644 --- a/hibernate-core/src/main/java/org/hibernate/spi/EntityIdentifierNavigablePath.java +++ b/hibernate-core/src/main/java/org/hibernate/spi/EntityIdentifierNavigablePath.java @@ -10,8 +10,8 @@ import org.hibernate.Incubating; import org.hibernate.metamodel.mapping.EntityIdentifierMapping; /** - * Specialized NavigablePath implementation for handling special cases - * pertaining to entity identifiers + * Specialized implementation of {@link NavigablePath} for handling special cases + * pertaining to entity identifiers. * * @author Andrea Boriero */ diff --git a/hibernate-core/src/main/java/org/hibernate/spi/NavigablePath.java b/hibernate-core/src/main/java/org/hibernate/spi/NavigablePath.java index 7364ed86ef..344ef37209 100644 --- a/hibernate-core/src/main/java/org/hibernate/spi/NavigablePath.java +++ b/hibernate-core/src/main/java/org/hibernate/spi/NavigablePath.java @@ -13,9 +13,9 @@ import org.hibernate.Incubating; import org.hibernate.internal.util.StringHelper; /** - * Compound-name where each path references to a domain or mapping model-part relative to a root path. - * - * Generally, the root path is an entity-name or a collection-role. + * A compound name where the root path element is an entity name or a collection role + * and each the path sub-path from the root references a domain or mapping model part + * relative to a root path. * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/spi/TreatedNavigablePath.java b/hibernate-core/src/main/java/org/hibernate/spi/TreatedNavigablePath.java index d413866065..cf18371e62 100644 --- a/hibernate-core/src/main/java/org/hibernate/spi/TreatedNavigablePath.java +++ b/hibernate-core/src/main/java/org/hibernate/spi/TreatedNavigablePath.java @@ -9,7 +9,7 @@ package org.hibernate.spi; import org.hibernate.Incubating; /** - * NavigablePath implementation with special handling for treated paths + * An implementation of {@link NavigablePath} with special handling for treated paths. * * @author Christian Beikov */ diff --git a/hibernate-core/src/main/java/org/hibernate/spi/package-info.java b/hibernate-core/src/main/java/org/hibernate/spi/package-info.java index 3a7b364eb8..e59618cf9a 100644 --- a/hibernate-core/src/main/java/org/hibernate/spi/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/spi/package-info.java @@ -6,6 +6,6 @@ */ /** - * A tiny SPI for dealing with compound names. + * A tiny SPI for dealing with compound names and navigable paths. */ package org.hibernate.spi; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/Alias.java b/hibernate-core/src/main/java/org/hibernate/sql/Alias.java index 99f207dbe7..2d6b29fb49 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/Alias.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/Alias.java @@ -8,7 +8,8 @@ package org.hibernate.sql; import org.hibernate.dialect.Dialect; /** - * An alias generator for SQL identifiers + * An alias generator for SQL identifiers. + * * @author Gavin King */ public final class Alias { diff --git a/hibernate-core/src/main/java/org/hibernate/sql/Delete.java b/hibernate-core/src/main/java/org/hibernate/sql/Delete.java index 3ba94782c5..d57c1ec24d 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/Delete.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/Delete.java @@ -13,7 +13,7 @@ import org.hibernate.Internal; import org.hibernate.dialect.Dialect; /** - * An SQL {@code DELETE} statement + * A SQL {@code DELETE} statement. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ForUpdateFragment.java b/hibernate-core/src/main/java/org/hibernate/sql/ForUpdateFragment.java index d53a94b228..ebeb5893bb 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ForUpdateFragment.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ForUpdateFragment.java @@ -16,6 +16,8 @@ import org.hibernate.dialect.RowLockStrategy; import org.hibernate.internal.util.StringHelper; /** + * A SQL {FOR UPDATE} clause. + * * @author Gavin King */ public class ForUpdateFragment { diff --git a/hibernate-core/src/main/java/org/hibernate/sql/InFragment.java b/hibernate-core/src/main/java/org/hibernate/sql/InFragment.java index a97b0e7079..cc2e362bc1 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/InFragment.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/InFragment.java @@ -14,9 +14,7 @@ import org.hibernate.Internal; import org.hibernate.internal.util.StringHelper; /** - * An SQL IN expression. - *

      - * ... in(...) + * A SQL {@code IN} expression. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/sql/Insert.java b/hibernate-core/src/main/java/org/hibernate/sql/Insert.java index 8f51546004..b70291ce7d 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/Insert.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/Insert.java @@ -17,7 +17,7 @@ import org.hibernate.dialect.identity.IdentityColumnSupport; import org.hibernate.generator.OnExecutionGenerator; /** - * An SQL {@code INSERT} statement + * A SQL {@code INSERT} statement. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/sql/SimpleSelect.java b/hibernate-core/src/main/java/org/hibernate/sql/SimpleSelect.java index 8bc4865e82..f3b3089b1a 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/SimpleSelect.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/SimpleSelect.java @@ -20,7 +20,7 @@ import org.hibernate.LockOptions; import org.hibernate.dialect.Dialect; /** - * An SQL {@code SELECT} statement with no table joins + * A SQL {@code SELECT} statement with no table joins. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/sql/Template.java b/hibernate-core/src/main/java/org/hibernate/sql/Template.java index 23a8e212c8..7e7c93b783 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/Template.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/Template.java @@ -21,7 +21,7 @@ import org.hibernate.query.sqm.function.SqmFunctionRegistry; import org.hibernate.type.spi.TypeConfiguration; /** - * Parses SQL fragments specified in mapping documents + * Parses SQL fragments specified in mapping documents. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/sql/Update.java b/hibernate-core/src/main/java/org/hibernate/sql/Update.java index 6a33462483..d0ba097630 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/Update.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/Update.java @@ -15,7 +15,7 @@ import org.hibernate.dialect.Dialect; import org.hibernate.metamodel.mapping.ModelPart; /** - * An SQL {@code UPDATE} statement + * A SQL {@code UPDATE} statement. * * @author Gavin King */ diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/package-info.java index 5d23a9bac4..5974821bf5 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/package-info.java @@ -6,7 +6,7 @@ */ /** - * Package defining a SQL AST for use in creating and executing various JDBC operations. + * Package defining a SQL AST for use in generation of SQL. */ @Incubating package org.hibernate.sql.ast; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/StandardSqlAstTranslator.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/StandardSqlAstTranslator.java index ee86017ee3..ca16a3c3dc 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/StandardSqlAstTranslator.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/StandardSqlAstTranslator.java @@ -12,8 +12,8 @@ import org.hibernate.sql.exec.spi.JdbcOperation; import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect; /** - * The final phase of query translation. Here we take the SQL-AST an - * "interpretation". For a select query, that means an instance of + * The final phase of query translation. Here we take the SQL AST an + * "interpretation". For a select query, that means an instance of * {@link JdbcOperationQuerySelect}. * * @author Christian Beikov diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/package-info.java index 70adf2f2ec..adf1841f76 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/package-info.java @@ -5,40 +5,37 @@ * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html */ +// Support for SQL CTE statements (WITH). The general syntax for a CTE statement is: +// +// cte:: WITH {cte-label} OPEN_PAREN cteColumns CLOSE_PAREN AS cteDefinition consumer +// +// cteColumns:: cteColumn (, cteColumn) +// +// todo (6.0) : should this include not-null, etc? +// cteColumn:: ... +// +// cteDefinition:: querySpec +// +// todo (6.0) : imo it would be better to have a specific contract `CteConsumer` for things that can occur here, which are: +// * select - `QuerySpec` +// * delete - `DeleteStatement` +// * update - `UpdateStatement` +// * insert-select - `InsertStatement +// +// consumer:: querySpec | deleteStatement | updateStatement | insertSelectStatement +// +// for example, a delete consumer might look like: +// +// with cte_name ( col1, col2, col3 ) as ( +// select some_val1, some_val, some_v3 +// from some_place +// ) +// delete from some_table +// where (some_table_col1, some_table_col2, some_table_col3) in ( +// select col1, col2, col3 +// from cte_name +// ) /** - * @asciidoc - * - * Support for SQL CTE statements (WITH). The general syntax for a CTE statement is: - * - * ```` - * cte:: WITH {cte-label} OPEN_PAREN cteColumns CLOSE_PAREN AS cteDefinition consumer - * - * cteColumns:: cteColumn (, cteColumn) - * - * todo (6.0) : should this include not-null, etc? - * cteColumn:: ... - * - * cteDefinition:: querySpec - * - * todo (6.0) : imo it would be better to have a specific contract `CteConsumer` for things that can occur here, which are: - * * select - `QuerySpec` - * * delete - `DeleteStatement` - * * update - `UpdateStatement` - * * insert-select - `InsertStatement - * - * consumer:: querySpec | deleteStatement | updateStatement | insertSelectStatement - * - * for example, a delete consumer might look like: - * - * with cte_name ( col1, col2, col3 ) as ( - * select some_val1, some_val, some_v3 - * from some_place - * ) - * delete from some_table - * where (some_table_col1, some_table_col2, some_table_col3) in ( - * select col1, col2, col3 - * from cte_name - * ) - * ```` + * Support for common table expressions (CTE) in a SQL tree. */ package org.hibernate.sql.ast.tree.cte; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/delete/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/delete/package-info.java new file mode 100644 index 0000000000..f3fbd0ace9 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/delete/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * AST nodes representing {@code delete} statements in a SQL tree. + */ +package org.hibernate.sql.ast.tree.delete; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/expression/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/expression/package-info.java index 221e0647a8..d6899cd108 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/expression/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/expression/package-info.java @@ -6,6 +6,6 @@ */ /** - * Contracts related to expressions in a SQL tree + * AST nodes representing expressions in a SQL tree. */ package org.hibernate.sql.ast.tree.expression; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/from/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/from/package-info.java new file mode 100644 index 0000000000..c210cc14a2 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/from/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * AST nodes representing root tables and joins in a SQL tree. + */ +package org.hibernate.sql.ast.tree.from; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/insert/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/insert/package-info.java new file mode 100644 index 0000000000..be513192e3 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/insert/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * AST nodes representing {@code insert} statements in a SQL tree. + */ +package org.hibernate.sql.ast.tree.insert; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/predicate/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/predicate/package-info.java new file mode 100644 index 0000000000..ff14291ac2 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/predicate/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * AST nodes representing logical predicates in a SQL tree. + */ +package org.hibernate.sql.ast.tree.predicate; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/select/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/select/package-info.java new file mode 100644 index 0000000000..94b6e1d994 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/select/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * AST nodes representing {@code select} statements in a SQL tree. + */ +package org.hibernate.sql.ast.tree.select; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/update/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/update/package-info.java new file mode 100644 index 0000000000..6eeab9ace4 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/update/package-info.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * AST nodes representing {@code update} statements in a SQL tree. + */ +package org.hibernate.sql.ast.tree.update; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/exec/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/exec/package-info.java index e2b9091acf..01723e08c5 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/exec/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/exec/package-info.java @@ -6,7 +6,7 @@ */ /** - * Support for execution of SQL statements through JDBC. + * Support for execution of SQL statements via JDBC. */ @Incubating package org.hibernate.sql.exec; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/model/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/model/package-info.java index a47017e564..df169a7c94 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/model/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/model/package-info.java @@ -6,9 +6,9 @@ */ /** - * Package contains specialized SQL AST nodes and builders for - * table mutations for model parts originating from normal - * persistence-context events related to flush, etc. + * Package contains specialized SQL AST nodes and builders for table mutations + * of {@linkplain org.hibernate.metamodel.mapping.ModelPart model parts} + * originating from normal persistence-context events. * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/sql/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/package-info.java index 5f07a47939..e2f223f32c 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/package-info.java @@ -6,6 +6,19 @@ */ /** - * This package defines helper classes for rendering SQL fragments and SQL statements. + * This package contains helper classes for rendering SQL fragments and SQL statements. + *

      + * Subpackages under this namespace contain the following very important components of + * Hibernate: + *

        + *
      • The {@linkplain org.hibernate.sql.ast SQL AST} used for generation of SQL queries. + *
      • A {@linkplain org.hibernate.sql.model specialized model} for building and executing + * mutation statements related to {@linkplain org.hibernate.metamodel.mapping.ModelPart + * domain model parts}. + *
      • An API for {@linkplain org.hibernate.sql.results processing JDBC results} and + * producing graphs of entity objects based around a + * {@linkplain org.hibernate.sql.results.graph.DomainResultGraphNode domain result graph}. + *
      • Support for {@linkplain org.hibernate.sql.exec execution} of SQL via JDBC. + *
      */ package org.hibernate.sql; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/caching/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/results/caching/package-info.java index 666c64a7c9..12b56352e9 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/caching/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/caching/package-info.java @@ -6,6 +6,6 @@ */ /** - * Support for caching of query results + * Support for caching of query results. */ package org.hibernate.sql.results.caching; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/DomainResultGraphNode.java b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/DomainResultGraphNode.java index 22267ae2a8..8c0b825c03 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/DomainResultGraphNode.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/DomainResultGraphNode.java @@ -13,8 +13,8 @@ import org.hibernate.type.descriptor.java.JavaType; /** * Marker for all object types that can be part of a result mapping - * - * Both {@link DomainResult} and {@link Fetch} are ResultSetMappingNode subtypes. + *

      + * Both {@link DomainResult} and {@link Fetch} are subtypes. * * @author Steve Ebersole */ diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/package-info.java new file mode 100644 index 0000000000..f3326b4315 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/package-info.java @@ -0,0 +1,17 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ + +/** + * Defines domain result graphs. + * + * @see org.hibernate.sql.results.graph.DomainResult + * @see org.hibernate.sql.results.graph.Fetch + */ +@Incubating +package org.hibernate.sql.results.graph; + +import org.hibernate.Incubating; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/package-info.java b/hibernate-core/src/main/java/org/hibernate/sql/results/package-info.java index 218099598d..db5ecee527 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/package-info.java @@ -6,9 +6,10 @@ */ /** - * Package for processing JDBC ResultSets into hydrated domain model graphs based on a "load plan" - * defined by a "domain result graph" - one or more {@link org.hibernate.sql.results.graph.DomainResult} nodes - * with zero-or-more {@link org.hibernate.sql.results.graph.Fetch} nodes + * Package for processing JDBC {@code ResultSet}s into hydrated domain model graphs + * based on a "load plan" defined by a "domain result graph", that is, one or more + * {@link org.hibernate.sql.results.graph.DomainResult} nodes with zero or more + * {@link org.hibernate.sql.results.graph.Fetch} nodes. */ @Incubating package org.hibernate.sql.results; diff --git a/hibernate-core/src/main/java/org/hibernate/stat/spi/package-info.java b/hibernate-core/src/main/java/org/hibernate/stat/spi/package-info.java index ecc4d02e1c..4ca163ef14 100644 --- a/hibernate-core/src/main/java/org/hibernate/stat/spi/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/stat/spi/package-info.java @@ -7,5 +7,7 @@ /** * An SPI allowing customized statistics collection. + * + * @see org.hibernate.stat.spi.StatisticsImplementor */ package org.hibernate.stat.spi; diff --git a/hibernate-core/src/main/java/org/hibernate/tuple/package-info.java b/hibernate-core/src/main/java/org/hibernate/tuple/package-info.java index 83e89dced4..a76697c4b3 100644 --- a/hibernate-core/src/main/java/org/hibernate/tuple/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/tuple/package-info.java @@ -6,8 +6,8 @@ */ /** - * Most contracts here have been replaced by Hibernate's - * {@linkplain org.hibernate.metamodel.mapping mapping-model}. + * Most contracts here have been replaced by the new runtime + * {@linkplain org.hibernate.metamodel.mapping mapping model}. *

      * Value-generation related contracts have been replaced by * {@link org.hibernate.generator} diff --git a/hibernate-core/src/main/javadoc/overview.html b/hibernate-core/src/main/javadoc/overview.html index a63b980138..1135b1d94c 100644 --- a/hibernate-core/src/main/javadoc/overview.html +++ b/hibernate-core/src/main/javadoc/overview.html @@ -10,36 +10,40 @@

      Hibernate is a library for object/relation mapping (ORM). It provides: -

        -
      • - a native API centered around {@link org.hibernate.SessionFactory} and - {@link org.hibernate.Session}, -
      • -
      • - an implementation of the Java (or Jakarta) Persistence API (JPA), - where the equivalent central interfaces are {@link jakarta.persistence.EntityManagerFactory} - and {@link jakarta.persistence.EntityManager}, and -
      • -
      • - a set of mapping annotations which augment the O/R mapping annotations defined - by JPA, and which may be used with either API. -
      • -

      +
        +
      • + a native API centered around {@link org.hibernate.SessionFactory} and + {@link org.hibernate.Session}, +
      • +
      • + an implementation of the Java (or Jakarta) Persistence API (JPA), + where the equivalent central interfaces are {@link jakarta.persistence.EntityManagerFactory} + and {@link jakarta.persistence.EntityManager}, and +
      • +
      • + a set of mapping annotations which augment the O/R mapping annotations defined + by JPA, and which may be used with either API. +
      • +

      Native API

      Along with {@link org.hibernate.SessionFactory} and {@link org.hibernate.Session}, applications using the native API will often make use of the following interfaces: -

        -
      • {@link org.hibernate.cfg.Configuration} to configure and bootstrap Hibernate,
      • -
      • {@link org.hibernate.StatelessSession} for processes involving many entity instances,
      • -
      • {@link org.hibernate.Cache} to manage the second-level cache,
      • -
      • {@link org.hibernate.Transaction} to control local transactions, and
      • -
      • {@link org.hibernate.query.Query} to execute HQL queries.
      • -

      +
        +
      • {@link org.hibernate.cfg.Configuration} to configure and bootstrap Hibernate,
      • +
      • {@link org.hibernate.StatelessSession} for processes involving many entity instances,
      • +
      • {@link org.hibernate.Cache} to manage the second-level cache,
      • +
      • {@link org.hibernate.Transaction} to control local transactions
      • +
      • {@link org.hibernate.query.Query} to execute HQL queries,
      • +
      • {@link org.hibernate.query.NativeQuery} to execute native SQL queries,
      • +
      • {@link org.hibernate.query.criteria.HibernateCriteriaBuilder} to construct criteria queries, + and
      • +
      • {@link org.hibernate.relational.SchemaManager} to execute DDL in tests.
      • +

      JPA

      @@ -70,33 +74,64 @@ The full power of Hibernate can only be unlocked via judicious use of these extra annotations.

      +

      Popular extension points

      + +

      + Hibernate offers an enormous wealth of extension points for customizing almost any aspect of + its implementation. Most of these extension points are far too technical to be of interest to + the typical application developer. +

      +

      + However, the following extension points are of quite general interest: +

      +
        +
      • + {@link org.hibernate.usertype} defines support for user-defined custom attribute types, +
      • +
      • + {@link org.hibernate.generator} defines support for generated attribute values, +
      • +
      • + {@link org.hibernate.context.spi} defines support for context-bound "current" sessions + and contextual multi-tenancy, +
      • +
      • + {@link org.hibernate.cache.spi} defines an SPI for integrating with second-level cache + providers, +
      • +
      • + {@link org.hibernate.engine.jdbc.connections.spi} defines an SPI for integrating with + JDBC connection pools. +
      • +
      +

      Package categories

      The organization of code into packages is based on the following classification: -

        -
      • - API packages include classes and interfaces which are used directly by - a typical application. These packages never have spi nor internal - in their name, and are not under the namespace org.hibernate.testing. -
      • -
      • - SPI packages include classes and interfaces which are used by integrators, - library developers, and framework developers to develop extensions to Hibernate, or to alter - its behavior in some way. These packages usually have spi in their name. -
      • -
      • - Some classes and interfaces are considered part of the internal implementation of Hibernate. - This category includes packages with internal in their name, along with any class - or interface annotated {@link org.hibernate.Internal @Internal}. Clients should avoid depending - directly on these types. -
      • -
      • - The hibernate-testing module, and the namespace org.hibernate.testing - contain testing support used in the Hibernate test suite. -
      • -

      +
        +
      • + API packages include classes and interfaces which are used directly by + a typical application. These packages never have spi nor internal + in their name, and are not under the namespace org.hibernate.testing. +
      • +
      • + SPI packages include classes and interfaces which are used by integrators, + library developers, and framework developers to develop extensions to Hibernate, or to alter + its behavior in some way. These packages usually have spi in their name. +
      • +
      • + Some classes and interfaces are considered part of the internal implementation of Hibernate. + This category includes packages with internal in their name, along with any class + or interface annotated {@link org.hibernate.Internal @Internal}. Clients should avoid depending + directly on these types. +
      • +
      • + The hibernate-testing module, and the namespace org.hibernate.testing + contain testing support used in the Hibernate test suite. +
      • +

      More information

      diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/derivedidentities/e1/b/specjmapid/IdMapManyToOneSpecjTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/derivedidentities/e1/b/specjmapid/IdMapManyToOneSpecjTest.java index 9a10c8a181..f2319b0df8 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/derivedidentities/e1/b/specjmapid/IdMapManyToOneSpecjTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/derivedidentities/e1/b/specjmapid/IdMapManyToOneSpecjTest.java @@ -21,7 +21,7 @@ import static org.junit.Assert.assertEquals; /** * A test. * - * @author Stale W. Pedersen + * @author Stale W. Pedersen */ public class IdMapManyToOneSpecjTest extends BaseNonConfigCoreFunctionalTestCase { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/derivedidentities/e1/b2/IdClassGeneratedValueManyToOneTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/derivedidentities/e1/b2/IdClassGeneratedValueManyToOneTest.java index 93bda56ebc..f2060df93b 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/derivedidentities/e1/b2/IdClassGeneratedValueManyToOneTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/derivedidentities/e1/b2/IdClassGeneratedValueManyToOneTest.java @@ -21,7 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; /** * A test. * - * @author Stale W. Pedersen + * @author Stale W. Pedersen */ @DomainModel( annotatedClasses = { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/entities/Hotel.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/entities/Hotel.java index fc145acef4..e77d583ded 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/entities/Hotel.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/entities/Hotel.java @@ -12,7 +12,7 @@ import jakarta.persistence.Id; /** * Entity with assigned identity * - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ @Entity public class Hotel { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclass/DomainAdmin.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclass/DomainAdmin.java index 0b128f07c4..73b43797d2 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclass/DomainAdmin.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclass/DomainAdmin.java @@ -20,7 +20,7 @@ import jakarta.persistence.Table; /** * A DomainAdmin. * - * @author Stale W. Pedersen + * @author Stale W. Pedersen */ @Entity @Table(name = "domainadmin") diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclass/DomainAdminId.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclass/DomainAdminId.java index 28676fee90..cb4322d793 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclass/DomainAdminId.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclass/DomainAdminId.java @@ -13,7 +13,7 @@ import java.io.Serializable; /** * A DomainAdminId. * - * @author Stale W. Pedersen + * @author Stale W. Pedersen */ @SuppressWarnings("serial") public class DomainAdminId implements Serializable { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclass/IdClassCompositePKTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclass/IdClassCompositePKTest.java index 4c3f6e7ec7..dab0acb1e9 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclass/IdClassCompositePKTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclass/IdClassCompositePKTest.java @@ -21,7 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; /** - * @author Stale W. Pedersen + * @author Stale W. Pedersen */ @DomainModel(annotatedClasses = DomainAdmin.class) @SessionFactory diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/IdClassGeneratedValueTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/IdClassGeneratedValueTest.java index a3e4e094ff..07a1785ad0 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/IdClassGeneratedValueTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/IdClassGeneratedValueTest.java @@ -22,7 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; /** * A test. * - * @author Stale W. Pedersen + * @author Stale W. Pedersen */ @DomainModel( annotatedClasses = { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/Multiple.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/Multiple.java index 6f65ca3c9a..22c8b8e918 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/Multiple.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/Multiple.java @@ -18,7 +18,7 @@ import org.hibernate.annotations.GenericGenerator; /** * An Entity containing a composite key with two generated values. * - * @author Stale W. Pedersen + * @author Stale W. Pedersen */ @Entity @IdClass(MultiplePK.class) diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/MultiplePK.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/MultiplePK.java index b61db8f6af..8e18225d56 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/MultiplePK.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/MultiplePK.java @@ -10,7 +10,7 @@ import java.io.Serializable; /** * MultiplePK * - * @author Stale W. Pedersen + * @author Stale W. Pedersen */ public class MultiplePK implements Serializable { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/Simple.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/Simple.java index da748b1b30..3d9913f411 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/Simple.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/Simple.java @@ -13,7 +13,7 @@ import jakarta.persistence.IdClass; /** * A Simple entity class. * - * @author Stale W. Pedersen + * @author Stale W. Pedersen */ @Entity @IdClass(SimplePK.class) diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/Simple2.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/Simple2.java index 7080005fcb..b1b4a77ce9 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/Simple2.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/Simple2.java @@ -17,7 +17,7 @@ import org.hibernate.annotations.GenericGenerator; * The {@link Simple} entity redone with a generated value {@link #id1} as part of its * composite pk * - * @author Stale W. Pedersen + * @author Stale W. Pedersen */ @Entity @IdClass(SimplePK.class) diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/SimplePK.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/SimplePK.java index 722cf410d3..f74d41e9f0 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/SimplePK.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/idclassgeneratedvalue/SimplePK.java @@ -10,7 +10,7 @@ import java.io.Serializable; /** * A SimplePK. * - * @author Stale W. Pedersen + * @author Stale W. Pedersen */ public class SimplePK implements Serializable { private final Long id1; diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/AbstractJPAIndexTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/AbstractJPAIndexTest.java index 5938099d63..fe669cf9d0 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/AbstractJPAIndexTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/AbstractJPAIndexTest.java @@ -33,7 +33,7 @@ import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; /** - * @author Strong Liu + * @author Strong Liu */ public abstract class AbstractJPAIndexTest extends BaseNonConfigCoreFunctionalTestCase { @Override diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/Car.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/Car.java index 067191eb21..e33fa273ee 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/Car.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/Car.java @@ -23,7 +23,7 @@ import jakarta.persistence.Table; /** - * @author Strong Liu + * @author Strong Liu */ @Entity @Table(indexes = { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/Dealer.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/Dealer.java index e7b72b73c7..4a0f1a9aaf 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/Dealer.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/Dealer.java @@ -10,7 +10,7 @@ import java.io.Serializable; import jakarta.persistence.Embeddable; /** - * @author Strong Liu + * @author Strong Liu */ @Embeddable public class Dealer implements Serializable { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/Importer.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/Importer.java index f2f3489c10..5e8e7c581a 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/Importer.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/Importer.java @@ -15,7 +15,7 @@ import jakarta.persistence.JoinTable; import jakarta.persistence.ManyToMany; /** - * @author Strong Liu + * @author Strong Liu */ @Entity public class Importer { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/IndexTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/IndexTest.java index 562d0d3c4c..64d920c3b8 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/IndexTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/IndexTest.java @@ -7,7 +7,7 @@ package org.hibernate.orm.test.annotations.index.jpa; /** - * @author Strong Liu + * @author Strong Liu */ public class IndexTest extends AbstractJPAIndexTest { @Override diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/OrmXmlIndexTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/OrmXmlIndexTest.java index 13825f70a9..5e4bc7531a 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/OrmXmlIndexTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/index/jpa/OrmXmlIndexTest.java @@ -8,7 +8,7 @@ package org.hibernate.orm.test.annotations.index.jpa; /** - * @author Strong Liu + * @author Strong Liu */ public class OrmXmlIndexTest extends AbstractJPAIndexTest { @Override diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/Building.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/Building.java index b65960a1d3..4da1fd1552 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/Building.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/Building.java @@ -10,7 +10,7 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.MappedSuperclass; /** - * @author Manuel Bernhardt + * @author Manuel Bernhardt */ @MappedSuperclass public class Building { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/House.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/House.java index ede3b17190..270e02b8d9 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/House.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/House.java @@ -14,7 +14,7 @@ import jakarta.persistence.UniqueConstraint; import jakarta.validation.constraints.NotNull; /** - * @author Manuel Bernhardt + * @author Manuel Bernhardt */ @Entity @Table(uniqueConstraints = {@UniqueConstraint(name = "uniqueWithInherited", columnNames = {"room_id", "cost"} )}) diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/Room.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/Room.java index 8bba363447..67764dbd42 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/Room.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/Room.java @@ -11,7 +11,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.Id; /** - * @author Manuel Bernhardt + * @author Manuel Bernhardt */ @Entity public class Room { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/UniqueConstraintTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/UniqueConstraintTest.java index 98c38a8513..184120d32c 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/UniqueConstraintTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/UniqueConstraintTest.java @@ -20,7 +20,7 @@ import static org.hibernate.testing.junit4.ExtraAssertions.assertTyping; import static org.junit.Assert.fail; /** - * @author Manuel Bernhardt + * @author Manuel Bernhardt * @author Brett Meyer */ @SkipForDialect(value = SybaseDialect.class, diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/tracker/CompositeOwnerTrackerTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/tracker/CompositeOwnerTrackerTest.java index b621fd3fe3..a17213852a 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/tracker/CompositeOwnerTrackerTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/tracker/CompositeOwnerTrackerTest.java @@ -13,7 +13,7 @@ import org.junit.Test; import static org.junit.Assert.assertEquals; /** - * @author Ståle W. Pedersen + * @author Ståle W. Pedersen */ public class CompositeOwnerTrackerTest { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/tracker/DirtyTrackerTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/tracker/DirtyTrackerTest.java index afb773fb2b..159a58f46b 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/tracker/DirtyTrackerTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/tracker/DirtyTrackerTest.java @@ -17,7 +17,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** - * @author Ståle W. Pedersen + * @author Ståle W. Pedersen */ public class DirtyTrackerTest { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/cascade/MultiPathCascadeTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/cascade/MultiPathCascadeTest.java index 6596e397cd..3788aea619 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/cascade/MultiPathCascadeTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/cascade/MultiPathCascadeTest.java @@ -21,7 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; /** - * @author Ovidiu Feodorov + * @author Ovidiu Feodorov * @author Gail Badner */ @DomainModel( diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Gate.java b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Gate.java index fb57661974..1fdd3b509b 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Gate.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Gate.java @@ -10,7 +10,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.Id; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ @Entity public class Gate { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/GoofyException.java b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/GoofyException.java index 64a05c763d..0e56c2f313 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/GoofyException.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/GoofyException.java @@ -7,7 +7,7 @@ package org.hibernate.orm.test.cfg.persister; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ public class GoofyException extends RuntimeException { private Class value; diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/GoofyPersisterClassProvider.java b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/GoofyPersisterClassProvider.java index d102ead84c..0bb21db20a 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/GoofyPersisterClassProvider.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/GoofyPersisterClassProvider.java @@ -78,7 +78,7 @@ import org.hibernate.type.Type; import org.hibernate.type.descriptor.java.JavaType; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ public class GoofyPersisterClassProvider implements PersisterClassResolver { @Override diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Palmtree.java b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Palmtree.java index aef82db17a..c26e6231c5 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Palmtree.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Palmtree.java @@ -9,7 +9,7 @@ package org.hibernate.orm.test.cfg.persister; import jakarta.persistence.Entity; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ @Entity public class Palmtree extends Tree { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/PersisterClassProviderTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/PersisterClassProviderTest.java index b87da6c08d..5b0714077a 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/PersisterClassProviderTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/PersisterClassProviderTest.java @@ -22,7 +22,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.fail; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ public class PersisterClassProviderTest extends BaseUnitTestCase { @Test diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Portal.java b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Portal.java index 1b7ffaabf0..6b42e7f35c 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Portal.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Portal.java @@ -15,7 +15,7 @@ import org.hibernate.annotations.Persister; import org.hibernate.persister.entity.SingleTableEntityPersister; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ @Entity @Persister( impl = SingleTableEntityPersister.class) diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Tree.java b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Tree.java index 5664e21417..cf8a38fcea 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Tree.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Tree.java @@ -10,7 +10,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.Id; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ @Entity public class Tree { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Window.java b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Window.java index a23b3fd0ee..5f4af70a5a 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Window.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/cfg/persister/Window.java @@ -13,7 +13,7 @@ import org.hibernate.annotations.Persister; import org.hibernate.persister.entity.SingleTableEntityPersister; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ @Entity @Persister( impl = SingleTableEntityPersister.class) diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/dialect/function/MySQLRoundFunctionTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/dialect/function/MySQLRoundFunctionTest.java index c2d00bb9d3..13e364049b 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/dialect/function/MySQLRoundFunctionTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/dialect/function/MySQLRoundFunctionTest.java @@ -19,7 +19,7 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; import static org.junit.Assert.assertEquals; /** - @author Strong Liu + @author Strong Liu */ @RequiresDialect( MySQLDialect.class ) public class MySQLRoundFunctionTest extends BaseCoreFunctionalTestCase { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/dialect/function/Product.java b/hibernate-core/src/test/java/org/hibernate/orm/test/dialect/function/Product.java index e9941a03bf..3cfdbd2017 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/dialect/function/Product.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/dialect/function/Product.java @@ -10,7 +10,7 @@ import java.util.Date; /** * - * @author Strong Liu + * @author Strong Liu * */ public class Product { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/entitygraph/named/basic/BasicAnnNamedEntityGraphTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/entitygraph/named/basic/BasicAnnNamedEntityGraphTest.java index ee9c90813f..dc7149f889 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/entitygraph/named/basic/BasicAnnNamedEntityGraphTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/entitygraph/named/basic/BasicAnnNamedEntityGraphTest.java @@ -18,7 +18,7 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; /** - * @author Strong Liu + * @author Strong Liu */ @DomainModel( annotatedClasses = Person.class diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/entitygraph/named/basic/BasicOrmNamedEntityGraphTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/entitygraph/named/basic/BasicOrmNamedEntityGraphTest.java index 6f40d74ce3..4619df2106 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/entitygraph/named/basic/BasicOrmNamedEntityGraphTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/entitygraph/named/basic/BasicOrmNamedEntityGraphTest.java @@ -18,7 +18,7 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; /** - * @author Strong Liu + * @author Strong Liu */ @DomainModel( xmlMappings = "org/hibernate/orm/test/entitygraph/named/basic/orm.xml" diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/generatedkeys/generated/MyEntity.java b/hibernate-core/src/test/java/org/hibernate/orm/test/generatedkeys/generated/MyEntity.java index 047c77bc9d..a83286fed4 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/generatedkeys/generated/MyEntity.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/generatedkeys/generated/MyEntity.java @@ -17,7 +17,7 @@ import org.hibernate.annotations.NaturalId; import static org.hibernate.generator.EventType.INSERT; /** - * @author Steve Ebersole + * @author Steve Ebersole */ @Entity @Table(name="my_entity") public class MyEntity { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/generatedkeys/select/MyEntity.java b/hibernate-core/src/test/java/org/hibernate/orm/test/generatedkeys/select/MyEntity.java index 5233ca9809..566c2b843e 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/generatedkeys/select/MyEntity.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/generatedkeys/select/MyEntity.java @@ -8,7 +8,7 @@ package org.hibernate.orm.test.generatedkeys.select; /** - * @author Steve Ebersole + * @author Steve Ebersole */ public class MyEntity { private Long id; diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/generatedkeys/selectannotated/MyEntity.java b/hibernate-core/src/test/java/org/hibernate/orm/test/generatedkeys/selectannotated/MyEntity.java index fcef7eae63..3509619dec 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/generatedkeys/selectannotated/MyEntity.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/generatedkeys/selectannotated/MyEntity.java @@ -17,7 +17,7 @@ import org.hibernate.annotations.NaturalId; import org.hibernate.id.SelectGenerator; /** - * @author Steve Ebersole + * @author Steve Ebersole */ @Entity @Table(name="my_entity") @GenericGenerator(name = "triggered", type = SelectGenerator.class) diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/ByteArrayIdTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/ByteArrayIdTest.java index 1fe7ae34d3..d3487709b6 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/ByteArrayIdTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/ByteArrayIdTest.java @@ -30,7 +30,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; /** - * @author Piotr Krauzowicz + * @author Piotr Krauzowicz * @author Gail Badner */ @SkipForDialect(dialectClass = MySQLDialect.class, majorVersion = 5, matchSubTypes = true, reason = "BLOB/TEXT column 'id' used in key specification without a key length") diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/CharacterArrayIdTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/CharacterArrayIdTest.java index dbf5c08590..ad46b9d414 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/CharacterArrayIdTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/CharacterArrayIdTest.java @@ -27,7 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; /** - * @author Piotr Krauzowicz + * @author Piotr Krauzowicz * @author Gail Badner */ @DomainModel( diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/PrimitiveByteArrayIdTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/PrimitiveByteArrayIdTest.java index a63da41ce0..fdc58d6266 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/PrimitiveByteArrayIdTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/PrimitiveByteArrayIdTest.java @@ -30,7 +30,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; /** - * @author Piotr Krauzowicz + * @author Piotr Krauzowicz * @author Gail Badner */ @SkipForDialect(dialectClass = MySQLDialect.class, majorVersion = 5, reason = "BLOB/TEXT column 'id' used in key specification without a key length") diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/PrimitiveCharacterArrayIdTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/PrimitiveCharacterArrayIdTest.java index 0a7812edf6..fbec5b3313 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/PrimitiveCharacterArrayIdTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/id/array/PrimitiveCharacterArrayIdTest.java @@ -27,7 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; /** - * @author Piotr Krauzowicz + * @author Piotr Krauzowicz * @author Gail Badner */ @DomainModel( diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/Bell.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/Bell.java index 72cd105c90..59c4d783e3 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/Bell.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/Bell.java @@ -10,7 +10,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.Id; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ @Entity public class Bell { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/PersisterClassProviderTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/PersisterClassProviderTest.java index f6431a533a..950cc8c772 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/PersisterClassProviderTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/PersisterClassProviderTest.java @@ -81,7 +81,7 @@ import jakarta.persistence.EntityManagerFactory; import jakarta.persistence.PersistenceException; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ public class PersisterClassProviderTest { @Test diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/SessionFactoryObserverTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/SessionFactoryObserverTest.java index e5d0befb5f..60271acf8d 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/SessionFactoryObserverTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/SessionFactoryObserverTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.Test; import jakarta.persistence.EntityManagerFactory; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ public class SessionFactoryObserverTest { @Test diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/Cable.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/Cable.java index 491e66569d..a3d2f8cae7 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/Cable.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/Cable.java @@ -13,7 +13,7 @@ import jakarta.persistence.Id; import org.hibernate.annotations.GenericGenerator; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ @Entity public class Cable { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/FunkyException.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/FunkyException.java index 590041f566..8a61724b33 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/FunkyException.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/FunkyException.java @@ -7,7 +7,7 @@ package org.hibernate.orm.test.jpa.ejb3configuration.id; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ public class FunkyException extends RuntimeException { } diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/FunkyIdGenerator.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/FunkyIdGenerator.java index 1be38e413d..8de643d754 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/FunkyIdGenerator.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/FunkyIdGenerator.java @@ -11,7 +11,7 @@ import org.hibernate.engine.spi.SharedSessionContractImplementor; import org.hibernate.id.IdentifierGenerator; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ public class FunkyIdGenerator implements IdentifierGenerator { public Object generate(SharedSessionContractImplementor session, Object object) throws HibernateException { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/FunkyIdentifierGeneratorProvider.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/FunkyIdentifierGeneratorProvider.java index aa42391b6a..48d5d976ba 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/FunkyIdentifierGeneratorProvider.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/FunkyIdentifierGeneratorProvider.java @@ -10,7 +10,7 @@ import java.util.HashMap; import java.util.Map; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ public class FunkyIdentifierGeneratorProvider implements org.hibernate.jpa.spi.IdentifierGeneratorStrategyProvider { public Map> getStrategies() { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/IdentifierGeneratorStrategyProviderTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/IdentifierGeneratorStrategyProviderTest.java index c881711556..cde459133e 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/IdentifierGeneratorStrategyProviderTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/id/IdentifierGeneratorStrategyProviderTest.java @@ -21,7 +21,7 @@ import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManagerFactory; /** - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ public class IdentifierGeneratorStrategyProviderTest { @Test diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/lock/LockTimeoutPropertyTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/lock/LockTimeoutPropertyTest.java index 8d7de3af9b..1673d1103d 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/lock/LockTimeoutPropertyTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/lock/LockTimeoutPropertyTest.java @@ -25,7 +25,7 @@ import static org.junit.Assert.assertTrue; /** * no need to run this on DB matrix * - * @author Strong Liu + * @author Strong Liu */ @RequiresDialect(H2Dialect.class) public class LockTimeoutPropertyTest extends BaseEntityManagerFunctionalTestCase { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/procedure/AnnotationTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/procedure/AnnotationTest.java index c9715b67ee..54ff23e244 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/procedure/AnnotationTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/procedure/AnnotationTest.java @@ -8,7 +8,7 @@ package org.hibernate.orm.test.jpa.procedure; /** - * @author Strong Liu + * @author Strong Liu */ public class AnnotationTest extends AbstractStoredProcedureTest { @Override diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/procedure/OrmTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/procedure/OrmTest.java index 17599afcb7..63c8a99624 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/procedure/OrmTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/procedure/OrmTest.java @@ -7,7 +7,7 @@ package org.hibernate.orm.test.jpa.procedure; /** - * @author Strong Liu + * @author Strong Liu */ public class OrmTest extends AbstractStoredProcedureTest{ @Override diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/procedure/User.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/procedure/User.java index 0e01f26943..246eca7d59 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/procedure/User.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/procedure/User.java @@ -18,7 +18,7 @@ import jakarta.persistence.StoredProcedureParameter; import jakarta.persistence.Table; /** - * @author Strong Liu + * @author Strong Liu */ @Entity @NamedStoredProcedureQueries( diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/xml/JpaEntityNameTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/xml/JpaEntityNameTest.java index f9f0d63588..32415e23c6 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/xml/JpaEntityNameTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/xml/JpaEntityNameTest.java @@ -17,7 +17,7 @@ import org.hibernate.testing.orm.junit.Jpa; import org.junit.jupiter.api.Test; /** - * @author Strong Liu + * @author Strong Liu */ @TestForIssue( jiraKey = "HHH-6039, HHH-6100" ) @Jpa( diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/xml/Qualifier.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/xml/Qualifier.java index 95d30a4b56..0c3d03fd7b 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/xml/Qualifier.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/xml/Qualifier.java @@ -7,7 +7,7 @@ package org.hibernate.orm.test.jpa.xml; /** - * @author Strong Liu + * @author Strong Liu */ public class Qualifier { private Long qualifierId; diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/pagination/DataMetaPoint.java b/hibernate-core/src/test/java/org/hibernate/orm/test/pagination/DataMetaPoint.java index 9afba4fa7d..816da754f2 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/pagination/DataMetaPoint.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/pagination/DataMetaPoint.java @@ -7,7 +7,7 @@ package org.hibernate.orm.test.pagination; /** - * @author Piotr Findeisen + * @author Piotr Findeisen */ public class DataMetaPoint { private long id; diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/service/ClassLoaderServiceImplTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/service/ClassLoaderServiceImplTest.java index 49c274018c..874d3fe382 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/service/ClassLoaderServiceImplTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/service/ClassLoaderServiceImplTest.java @@ -34,7 +34,7 @@ import static org.junit.Assert.assertSame; /** * @author Artem V. Navrotskiy - * @author Emmanuel Bernard + * @author Emmanuel Bernard */ public class ClassLoaderServiceImplTest { /** diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/sql/hand/MonetaryAmount.java b/hibernate-core/src/test/java/org/hibernate/orm/test/sql/hand/MonetaryAmount.java index 11b20df4f6..6c206d5c1b 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/sql/hand/MonetaryAmount.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/sql/hand/MonetaryAmount.java @@ -12,8 +12,8 @@ import java.util.Currency; /** * Represents a monetary amount as value and currency. * - * @author Gavin King - * @author Christian Bauer + * @author Gavin King + * @author Christian Bauer */ public class MonetaryAmount implements Serializable { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/subselect/CompositeIdTypeBindingTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/subselect/CompositeIdTypeBindingTest.java index 3a966f4092..15db6f88b0 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/subselect/CompositeIdTypeBindingTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/subselect/CompositeIdTypeBindingTest.java @@ -16,7 +16,7 @@ import org.junit.Assert; import org.junit.Test; /** - * @author Strong Liu + * @author Strong Liu */ @TestForIssue( jiraKey = "HHH-8312") public class CompositeIdTypeBindingTest extends BaseCoreFunctionalTestCase { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/CarBuyer.java b/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/CarBuyer.java index dda1e5ff8c..e935431b68 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/CarBuyer.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/CarBuyer.java @@ -9,7 +9,7 @@ package org.hibernate.orm.test.unionsubclass.alias; /** * - * @author Strong Liu + * @author Strong Liu */ public class CarBuyer extends Customer { private String sellerName; diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/Customer.java b/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/Customer.java index f4787fa0b2..05f0440866 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/Customer.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/Customer.java @@ -9,7 +9,7 @@ import java.io.Serializable; /** * - * @author Strong Liu + * @author Strong Liu */ public abstract class Customer implements Serializable { private PersonID id; diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/PersonID.java b/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/PersonID.java index 15e0a94d88..2a4f9c5c45 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/PersonID.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/PersonID.java @@ -9,7 +9,7 @@ import java.io.Serializable; /** * - * @author Strong Liu + * @author Strong Liu */ public class PersonID implements Serializable { private Long num; diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/SellCarTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/SellCarTest.java index a99f64a3ae..c4bc068066 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/SellCarTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/SellCarTest.java @@ -18,7 +18,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; /** - * @author Strong Liu + * @author Strong Liu */ @TestForIssue( jiraKey = "HHH-4825" ) public class SellCarTest extends BaseCoreFunctionalTestCase { diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/Seller.java b/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/Seller.java index 1d075945f5..0fac5a72aa 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/Seller.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/unionsubclass/alias/Seller.java @@ -11,7 +11,7 @@ import java.util.Set; /** * - * @author Strong Liu + * @author Strong Liu */ public class Seller implements Serializable { private PersonID id; diff --git a/hibernate-testing/src/main/java/org/hibernate/testing/byteman/BytemanHelper.java b/hibernate-testing/src/main/java/org/hibernate/testing/byteman/BytemanHelper.java index c56d222258..4ca58d4ccf 100644 --- a/hibernate-testing/src/main/java/org/hibernate/testing/byteman/BytemanHelper.java +++ b/hibernate-testing/src/main/java/org/hibernate/testing/byteman/BytemanHelper.java @@ -13,7 +13,7 @@ import org.jboss.byteman.rule.helper.Helper; import org.jboss.logging.Logger; /** - * @author Sanne Grinovero (C) 2011 Red Hat Inc. + * @author Sanne Grinovero (C) 2011 Red Hat Inc. * @author Hardy Ferentschik */ public class BytemanHelper extends Helper { diff --git a/hibernate-testing/src/main/java/org/hibernate/testing/logger/Log4J2DelegatingLogger.java b/hibernate-testing/src/main/java/org/hibernate/testing/logger/Log4J2DelegatingLogger.java index 7341e5d3a2..e41d3d55c2 100644 --- a/hibernate-testing/src/main/java/org/hibernate/testing/logger/Log4J2DelegatingLogger.java +++ b/hibernate-testing/src/main/java/org/hibernate/testing/logger/Log4J2DelegatingLogger.java @@ -23,7 +23,7 @@ import org.apache.logging.log4j.spi.AbstractLogger; * A {@code Logger} implementation which delegates to Log4J2 but makes it possible * to test for events being logged (not logged). * - * @author Sanne Grinovero (C) 2015 Red Hat Inc. + * @author Sanne Grinovero (C) 2015 Red Hat Inc. */ public final class Log4J2DelegatingLogger extends Logger { diff --git a/hibernate-testing/src/main/java/org/hibernate/testing/logger/LogInspectionHelper.java b/hibernate-testing/src/main/java/org/hibernate/testing/logger/LogInspectionHelper.java index 0d99cea0cc..d90e4b1a2f 100644 --- a/hibernate-testing/src/main/java/org/hibernate/testing/logger/LogInspectionHelper.java +++ b/hibernate-testing/src/main/java/org/hibernate/testing/logger/LogInspectionHelper.java @@ -18,7 +18,7 @@ import org.jboss.logging.DelegatingBasicLogger; * For this to work, it requires JBoss Logging to pick up our custom * implementation {@code Log4DelegatingLogger} via ServiceLoader. * - * @author Sanne Grinovero (C) 2015 Red Hat Inc. + * @author Sanne Grinovero (C) 2015 Red Hat Inc. */ public final class LogInspectionHelper { diff --git a/hibernate-testing/src/main/java/org/hibernate/testing/logger/TestableLoggerProvider.java b/hibernate-testing/src/main/java/org/hibernate/testing/logger/TestableLoggerProvider.java index 5f0fa3ca5d..dbdfe4334e 100644 --- a/hibernate-testing/src/main/java/org/hibernate/testing/logger/TestableLoggerProvider.java +++ b/hibernate-testing/src/main/java/org/hibernate/testing/logger/TestableLoggerProvider.java @@ -19,7 +19,7 @@ import org.apache.logging.log4j.ThreadContext; * A {@code LoggerProvider} for JBoss Logger. * See also META-INF/services/org.jboss.logging.LoggerProvider * - * @author Sanne Grinovero (C) 2015 Red Hat Inc. + * @author Sanne Grinovero (C) 2015 Red Hat Inc. */ public class TestableLoggerProvider implements org.jboss.logging.LoggerProvider { diff --git a/hibernate-testing/src/test/java/org/hibernate/testing/logger/LogDelegationTest.java b/hibernate-testing/src/test/java/org/hibernate/testing/logger/LogDelegationTest.java index 34d9e9c9ee..2c9531dba0 100644 --- a/hibernate-testing/src/test/java/org/hibernate/testing/logger/LogDelegationTest.java +++ b/hibernate-testing/src/test/java/org/hibernate/testing/logger/LogDelegationTest.java @@ -21,7 +21,7 @@ import org.junit.Test; * Verifies the Logger interception capabilities which we might use in other tests * are working as expected. * - * @author Sanne Grinovero (C) 2015 Red Hat Inc. + * @author Sanne Grinovero (C) 2015 Red Hat Inc. */ @TestForIssue(jiraKey = "HHH-9658") public class LogDelegationTest { diff --git a/hibernate-testing/src/test/java/org/hibernate/testing/logger/LoggingRuleTest.java b/hibernate-testing/src/test/java/org/hibernate/testing/logger/LoggingRuleTest.java index 006c1d86cf..2c0a6cf863 100644 --- a/hibernate-testing/src/test/java/org/hibernate/testing/logger/LoggingRuleTest.java +++ b/hibernate-testing/src/test/java/org/hibernate/testing/logger/LoggingRuleTest.java @@ -17,7 +17,7 @@ import org.junit.Test; /** * Example usage for the JUnit rule to assert logging events * - * @author Sanne Grinovero (C) 2015 Red Hat Inc. + * @author Sanne Grinovero (C) 2015 Red Hat Inc. */ @TestForIssue(jiraKey = "HHH-9658") public class LoggingRuleTest { diff --git a/release/src/release/javadoc/overview.html b/release/src/release/javadoc/overview.html index a63b980138..1135b1d94c 100644 --- a/release/src/release/javadoc/overview.html +++ b/release/src/release/javadoc/overview.html @@ -10,36 +10,40 @@

      Hibernate is a library for object/relation mapping (ORM). It provides: -

        -
      • - a native API centered around {@link org.hibernate.SessionFactory} and - {@link org.hibernate.Session}, -
      • -
      • - an implementation of the Java (or Jakarta) Persistence API (JPA), - where the equivalent central interfaces are {@link jakarta.persistence.EntityManagerFactory} - and {@link jakarta.persistence.EntityManager}, and -
      • -
      • - a set of mapping annotations which augment the O/R mapping annotations defined - by JPA, and which may be used with either API. -
      • -

      +
        +
      • + a native API centered around {@link org.hibernate.SessionFactory} and + {@link org.hibernate.Session}, +
      • +
      • + an implementation of the Java (or Jakarta) Persistence API (JPA), + where the equivalent central interfaces are {@link jakarta.persistence.EntityManagerFactory} + and {@link jakarta.persistence.EntityManager}, and +
      • +
      • + a set of mapping annotations which augment the O/R mapping annotations defined + by JPA, and which may be used with either API. +
      • +

      Native API

      Along with {@link org.hibernate.SessionFactory} and {@link org.hibernate.Session}, applications using the native API will often make use of the following interfaces: -

        -
      • {@link org.hibernate.cfg.Configuration} to configure and bootstrap Hibernate,
      • -
      • {@link org.hibernate.StatelessSession} for processes involving many entity instances,
      • -
      • {@link org.hibernate.Cache} to manage the second-level cache,
      • -
      • {@link org.hibernate.Transaction} to control local transactions, and
      • -
      • {@link org.hibernate.query.Query} to execute HQL queries.
      • -

      +
        +
      • {@link org.hibernate.cfg.Configuration} to configure and bootstrap Hibernate,
      • +
      • {@link org.hibernate.StatelessSession} for processes involving many entity instances,
      • +
      • {@link org.hibernate.Cache} to manage the second-level cache,
      • +
      • {@link org.hibernate.Transaction} to control local transactions
      • +
      • {@link org.hibernate.query.Query} to execute HQL queries,
      • +
      • {@link org.hibernate.query.NativeQuery} to execute native SQL queries,
      • +
      • {@link org.hibernate.query.criteria.HibernateCriteriaBuilder} to construct criteria queries, + and
      • +
      • {@link org.hibernate.relational.SchemaManager} to execute DDL in tests.
      • +

      JPA

      @@ -70,33 +74,64 @@ The full power of Hibernate can only be unlocked via judicious use of these extra annotations.

      +

      Popular extension points

      + +

      + Hibernate offers an enormous wealth of extension points for customizing almost any aspect of + its implementation. Most of these extension points are far too technical to be of interest to + the typical application developer. +

      +

      + However, the following extension points are of quite general interest: +

      +
        +
      • + {@link org.hibernate.usertype} defines support for user-defined custom attribute types, +
      • +
      • + {@link org.hibernate.generator} defines support for generated attribute values, +
      • +
      • + {@link org.hibernate.context.spi} defines support for context-bound "current" sessions + and contextual multi-tenancy, +
      • +
      • + {@link org.hibernate.cache.spi} defines an SPI for integrating with second-level cache + providers, +
      • +
      • + {@link org.hibernate.engine.jdbc.connections.spi} defines an SPI for integrating with + JDBC connection pools. +
      • +
      +

      Package categories

      The organization of code into packages is based on the following classification: -

        -
      • - API packages include classes and interfaces which are used directly by - a typical application. These packages never have spi nor internal - in their name, and are not under the namespace org.hibernate.testing. -
      • -
      • - SPI packages include classes and interfaces which are used by integrators, - library developers, and framework developers to develop extensions to Hibernate, or to alter - its behavior in some way. These packages usually have spi in their name. -
      • -
      • - Some classes and interfaces are considered part of the internal implementation of Hibernate. - This category includes packages with internal in their name, along with any class - or interface annotated {@link org.hibernate.Internal @Internal}. Clients should avoid depending - directly on these types. -
      • -
      • - The hibernate-testing module, and the namespace org.hibernate.testing - contain testing support used in the Hibernate test suite. -
      • -

      +
        +
      • + API packages include classes and interfaces which are used directly by + a typical application. These packages never have spi nor internal + in their name, and are not under the namespace org.hibernate.testing. +
      • +
      • + SPI packages include classes and interfaces which are used by integrators, + library developers, and framework developers to develop extensions to Hibernate, or to alter + its behavior in some way. These packages usually have spi in their name. +
      • +
      • + Some classes and interfaces are considered part of the internal implementation of Hibernate. + This category includes packages with internal in their name, along with any class + or interface annotated {@link org.hibernate.Internal @Internal}. Clients should avoid depending + directly on these types. +
      • +
      • + The hibernate-testing module, and the namespace org.hibernate.testing + contain testing support used in the Hibernate test suite. +
      • +

      More information