Skip to content

Instantly share code, notes, and snippets.

@jyemin
Created June 13, 2026 19:35
Show Gist options
  • Select an option

  • Save jyemin/cb4be02ab25818d5ac8a8a95cf950e92 to your computer and use it in GitHub Desktop.

Select an option

Save jyemin/cb4be02ab25818d5ac8a8a95cf950e92 to your computer and use it in GitHub Desktop.

Hibernate Production Dependencies by Package Type

.spi. Packages

org.hibernate.boot.spi

  • AdditionalMappingContributions, AdditionalMappingContributor, InFlightMetadataCollector, MetadataBuildingContext

org.hibernate.engine.jdbc.connections.spi

  • ConnectionProvider, DatabaseConnectionInfo

org.hibernate.engine.jdbc.dialect.spi

  • DialectFactory, DialectResolutionInfo

org.hibernate.engine.spi

  • SessionFactoryImplementor, SharedSessionContractImplementor

org.hibernate.exception.spi

  • SQLExceptionConversionDelegate

org.hibernate.metamodel.spi

  • RuntimeModelCreationContext

org.hibernate.query.spi

  • Limit, QueryOptions

org.hibernate.service.spi

  • Configurable, InjectService, ServiceContributor, ServiceRegistryImplementor, Stoppable

org.hibernate.sql.ast.spi

  • SqlAppender, SqlSelection

org.hibernate.sql.exec.spi

  • ExecutionContext, JdbcOperation, JdbcOperationQueryMutation, JdbcParameterBinder, JdbcParameterBindings, JdbcSelect

org.hibernate.sql.results.jdbc.spi

  • JdbcValuesMappingProducerProvider

org.hibernate.tool.schema.extract.spi

  • ColumnTypeInformation

org.hibernate.type.spi

  • TypeConfiguration

.internal. Packages

org.hibernate.internal.util.collections

  • Stack

org.hibernate.persister.internal

  • SqlFragmentPredicate

org.hibernate.query.sqm.sql.internal

  • BasicValuedPathInterpretation, SqmParameterInterpretation, SqmPathInterpretation

org.hibernate.sql.exec.internal

  • AbstractJdbcParameter, JdbcOperationQueryDelete, JdbcOperationQueryInsertImpl, JdbcOperationQuerySelect, JdbcOperationQueryUpdate

org.hibernate.sql.model.internal

  • OptionalTableUpdate, TableDeleteCustomSql, TableDeleteStandard, TableInsertCustomSql, TableInsertStandard, TableUpdateCustomSql, TableUpdateNoSet, TableUpdateStandard

org.hibernate.type.descriptor.sql.internal

  • DdlTypeImpl

Gray Area (no .spi./.internal. but not end-user stable API)

org.hibernate.boot.registry

  • BootstrapServiceRegistry, StandardServiceInitiator, StandardServiceRegistry, StandardServiceRegistryBuilder

org.hibernate.dialect.aggregate

  • AggregateSupport, AggregateSupportImpl

org.hibernate.dialect.function.array

  • AbstractArrayContainsFunction, AbstractArrayIncludesFunction, ArrayConstructorFunction

org.hibernate.engine.jdbc.mutation

  • JdbcValueBindings

org.hibernate.metamodel.mapping

  • EmbeddableMappingType, EmbeddableValuedModelPart, SqlTypedMapping

org.hibernate.metamodel.model.domain

  • ReturnableType

org.hibernate.persister.entity

  • EntityPersister, JoinedSubclassEntityPersister, SingleTableEntityPersister, UnionSubclassEntityPersister

org.hibernate.persister.entity.mutation

  • EntityMutationTarget

org.hibernate.query.sqm

  • ComparisonOperator, Conversion, FunctionArgumentException, SelfRenderingFunctionSqlAstExpression

org.hibernate.sql.ast.tree.*

  • cte: CteContainer
  • delete: DeleteStatement
  • expression: AggregateColumnWriteExpression, Any, BinaryArithmeticExpression, CaseSearchedExpression, CaseSimpleExpression, CastTarget, Collation, ColumnReference, Distinct, Duration, DurationUnit, EmbeddableTypeLiteral, EntityTypeLiteral, Every, Expression, ExtractUnit, Format, FunctionExpression, JdbcLiteral, JdbcParameter, Literal, ModifiedSubQueryExpression, NestedColumnReference, Over, Overflow, QueryLiteral, SelfRenderingExpression, SqlSelectionExpression, SqlTuple, SqlTupleContainer, Star, Summarization, TrimSpecification, UnaryOperation, UnparsedNumericLiteral
  • from: FromClause, FunctionTableReference, NamedTableReference, PluralTableGroup, QueryPartTableReference, TableGroup, TableGroupJoin, TableReferenceJoin, UnionTableReference, ValuesTableReference
  • insert: InsertSelectStatement
  • predicate: BetweenPredicate, BooleanExpressionPredicate, ComparisonPredicate, ExistsPredicate, FilterPredicate, GroupedPredicate, InArrayPredicate, InListPredicate, InSubQueryPredicate, Junction, LikePredicate, NegatedPredicate, NullnessPredicate, Predicate, SelfRenderingPredicate, ThruthnessPredicate
  • select: QueryGroup, QueryPart, QuerySpec, SelectClause, SelectStatement, SortSpecification
  • update: Assignment, UpdateStatement
  • top-level: AbstractMutationStatement, AbstractUpdateOrDeleteStatement, Clause, MutationStatement, SqlAstNode, SqlAstNodeRenderingMode, SqlAstTranslator, SqlAstTranslatorFactory, Statement

org.hibernate.sql.model

  • ast: AbstractRestrictedTableMutation, ColumnWriteFragment, TableMutation
  • jdbc: JdbcMutationOperation, OptionalTableUpdateOperation
  • top-level: MutationOperation, ValuesAnalysis

org.hibernate.type.descriptor

  • java: AbstractClassJavaType, JavaType
  • jdbc: AggregateJdbcType, ArrayJdbcType, BasicBinder, BasicExtractor, JdbcType, JdbcTypeConstructor, JdbcTypeIndicators, StructAttributeValues, StructuredJdbcType, TimestampUtcAsInstantJdbcType
  • top-level: ValueBinder, ValueExtractor, WrapperOptions

Dependencies by Our Type

MongoConfigurator

  • org.hibernate.service.spi.Configurable

MongoConfigurationContributor

  • org.hibernate.boot.registry.StandardServiceRegistry
  • org.hibernate.boot.registry.StandardServiceRegistryBuilder
  • org.hibernate.service.spi.Configurable
  • org.hibernate.service.spi.ServiceContributor

MongoDialect

  • org.hibernate.dialect.aggregate.AggregateSupport
  • org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo
  • org.hibernate.engine.jdbc.mutation.JdbcValueBindings
  • org.hibernate.engine.spi.SessionFactoryImplementor
  • org.hibernate.engine.spi.SharedSessionContractImplementor
  • org.hibernate.exception.spi.SQLExceptionConversionDelegate
  • org.hibernate.persister.entity.mutation.EntityMutationTarget
  • org.hibernate.sql.ast.SqlAstTranslatorFactory
  • org.hibernate.sql.ast.spi.SqlAppender
  • org.hibernate.sql.model.MutationOperation
  • org.hibernate.sql.model.ValuesAnalysis
  • org.hibernate.sql.model.internal.OptionalTableUpdate
  • org.hibernate.sql.model.jdbc.OptionalTableUpdateOperation
  • org.hibernate.type.descriptor.jdbc.TimestampUtcAsInstantJdbcType
  • org.hibernate.type.descriptor.sql.internal.DdlTypeImpl

MongoAdditionalMappingContributor

  • org.hibernate.boot.registry.BootstrapServiceRegistry
  • org.hibernate.boot.spi.AdditionalMappingContributions
  • org.hibernate.boot.spi.AdditionalMappingContributor
  • org.hibernate.boot.spi.InFlightMetadataCollector
  • org.hibernate.boot.spi.MetadataBuildingContext

MongoArrayConstructorFunction

  • org.hibernate.dialect.function.array.ArrayConstructorFunction
  • org.hibernate.metamodel.model.domain.ReturnableType
  • org.hibernate.sql.ast.SqlAstTranslator
  • org.hibernate.sql.ast.spi.SqlAppender
  • org.hibernate.sql.ast.tree.SqlAstNode

MongoArrayContainsFunction

  • org.hibernate.dialect.function.array.AbstractArrayContainsFunction
  • org.hibernate.metamodel.model.domain.ReturnableType
  • org.hibernate.query.sqm.produce.function.FunctionArgumentException
  • org.hibernate.query.sqm.sql.internal.SqmParameterInterpretation
  • org.hibernate.query.sqm.sql.internal.SqmPathInterpretation
  • org.hibernate.sql.ast.SqlAstTranslator
  • org.hibernate.sql.ast.spi.SqlAppender
  • org.hibernate.sql.ast.tree.SqlAstNode
  • org.hibernate.sql.ast.tree.expression.Expression
  • org.hibernate.sql.ast.tree.expression.FunctionExpression
  • org.hibernate.sql.ast.tree.expression.Literal
  • org.hibernate.sql.ast.tree.expression.SqlTuple
  • org.hibernate.type.spi.TypeConfiguration

MongoArrayIncludesFunction

  • org.hibernate.dialect.function.array.AbstractArrayIncludesFunction
  • org.hibernate.metamodel.model.domain.ReturnableType
  • org.hibernate.query.sqm.produce.function.FunctionArgumentException
  • org.hibernate.sql.ast.SqlAstTranslator
  • org.hibernate.sql.ast.spi.SqlAppender
  • org.hibernate.sql.ast.tree.SqlAstNode
  • org.hibernate.sql.ast.tree.expression.SqlTuple
  • org.hibernate.type.spi.TypeConfiguration

MongoAggregateSupport

  • org.hibernate.dialect.aggregate.AggregateSupportImpl
  • org.hibernate.metamodel.mapping.SqlTypedMapping
  • org.hibernate.type.spi.TypeConfiguration

TestMongoDialect

  • org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo

ObjectIdGenerator

  • org.hibernate.engine.spi.SharedSessionContractImplementor

StandardServiceRegistryScopedState

  • org.hibernate.boot.registry.BootstrapServiceRegistry
  • org.hibernate.boot.registry.StandardServiceInitiator
  • org.hibernate.boot.registry.StandardServiceRegistry
  • org.hibernate.boot.registry.StandardServiceRegistryBuilder
  • org.hibernate.engine.jdbc.dialect.spi.DialectFactory
  • org.hibernate.service.spi.ServiceRegistryImplementor

AbstractMqlTranslator

  • org.hibernate.engine.spi.SessionFactoryImplementor
  • org.hibernate.internal.util.collections.Stack
  • org.hibernate.metamodel.mapping.EmbeddableValuedModelPart
  • org.hibernate.persister.entity.EntityPersister
  • org.hibernate.persister.entity.JoinedSubclassEntityPersister
  • org.hibernate.persister.entity.SingleTableEntityPersister
  • org.hibernate.persister.entity.UnionSubclassEntityPersister
  • org.hibernate.persister.internal.SqlFragmentPredicate
  • org.hibernate.query.spi.Limit
  • org.hibernate.query.spi.QueryOptions
  • org.hibernate.query.sqm.ComparisonOperator
  • org.hibernate.query.sqm.function.SelfRenderingFunctionSqlAstExpression
  • org.hibernate.query.sqm.sql.internal.BasicValuedPathInterpretation
  • org.hibernate.query.sqm.sql.internal.SqmParameterInterpretation
  • org.hibernate.query.sqm.sql.internal.SqmPathInterpretation
  • org.hibernate.query.sqm.tree.expression.Conversion
  • org.hibernate.sql.ast.Clause
  • org.hibernate.sql.ast.SqlAstNodeRenderingMode
  • org.hibernate.sql.ast.SqlAstTranslator
  • org.hibernate.sql.ast.SqlAstTranslatorFactory
  • org.hibernate.sql.ast.spi.SqlAppender
  • org.hibernate.sql.ast.spi.SqlSelection
  • org.hibernate.sql.ast.tree.AbstractMutationStatement
  • org.hibernate.sql.ast.tree.AbstractUpdateOrDeleteStatement
  • org.hibernate.sql.ast.tree.SqlAstNode
  • org.hibernate.sql.ast.tree.Statement
  • org.hibernate.sql.ast.tree.cte.CteContainer
  • org.hibernate.sql.ast.tree.delete.DeleteStatement
  • org.hibernate.sql.ast.tree.expression.AggregateColumnWriteExpression
  • org.hibernate.sql.ast.tree.expression.Any
  • org.hibernate.sql.ast.tree.expression.BinaryArithmeticExpression
  • org.hibernate.sql.ast.tree.expression.CaseSearchedExpression
  • org.hibernate.sql.ast.tree.expression.CaseSimpleExpression
  • org.hibernate.sql.ast.tree.expression.CastTarget
  • org.hibernate.sql.ast.tree.expression.Collation
  • org.hibernate.sql.ast.tree.expression.ColumnReference
  • org.hibernate.sql.ast.tree.expression.Distinct
  • org.hibernate.sql.ast.tree.expression.Duration
  • org.hibernate.sql.ast.tree.expression.DurationUnit
  • org.hibernate.sql.ast.tree.expression.EmbeddableTypeLiteral
  • org.hibernate.sql.ast.tree.expression.EntityTypeLiteral
  • org.hibernate.sql.ast.tree.expression.Every
  • org.hibernate.sql.ast.tree.expression.Expression
  • org.hibernate.sql.ast.tree.expression.ExtractUnit
  • org.hibernate.sql.ast.tree.expression.Format
  • org.hibernate.sql.ast.tree.expression.FunctionExpression
  • org.hibernate.sql.ast.tree.expression.JdbcLiteral
  • org.hibernate.sql.ast.tree.expression.JdbcParameter
  • org.hibernate.sql.ast.tree.expression.Literal
  • org.hibernate.sql.ast.tree.expression.ModifiedSubQueryExpression
  • org.hibernate.sql.ast.tree.expression.NestedColumnReference
  • org.hibernate.sql.ast.tree.expression.Over
  • org.hibernate.sql.ast.tree.expression.Overflow
  • org.hibernate.sql.ast.tree.expression.QueryLiteral
  • org.hibernate.sql.ast.tree.expression.SelfRenderingExpression
  • org.hibernate.sql.ast.tree.expression.SqlSelectionExpression
  • org.hibernate.sql.ast.tree.expression.SqlTuple
  • org.hibernate.sql.ast.tree.expression.SqlTupleContainer
  • org.hibernate.sql.ast.tree.expression.Star
  • org.hibernate.sql.ast.tree.expression.Summarization
  • org.hibernate.sql.ast.tree.expression.TrimSpecification
  • org.hibernate.sql.ast.tree.expression.UnaryOperation
  • org.hibernate.sql.ast.tree.expression.UnparsedNumericLiteral
  • org.hibernate.sql.ast.tree.from.FromClause
  • org.hibernate.sql.ast.tree.from.FunctionTableReference
  • org.hibernate.sql.ast.tree.from.NamedTableReference
  • org.hibernate.sql.ast.tree.from.PluralTableGroup
  • org.hibernate.sql.ast.tree.from.QueryPartTableReference
  • org.hibernate.sql.ast.tree.from.TableGroup
  • org.hibernate.sql.ast.tree.from.TableGroupJoin
  • org.hibernate.sql.ast.tree.from.TableReferenceJoin
  • org.hibernate.sql.ast.tree.from.UnionTableReference
  • org.hibernate.sql.ast.tree.from.ValuesTableReference
  • org.hibernate.sql.ast.tree.insert.InsertSelectStatement
  • org.hibernate.sql.ast.tree.predicate.BetweenPredicate
  • org.hibernate.sql.ast.tree.predicate.BooleanExpressionPredicate
  • org.hibernate.sql.ast.tree.predicate.ComparisonPredicate
  • org.hibernate.sql.ast.tree.predicate.ExistsPredicate
  • org.hibernate.sql.ast.tree.predicate.FilterPredicate
  • org.hibernate.sql.ast.tree.predicate.GroupedPredicate
  • org.hibernate.sql.ast.tree.predicate.InArrayPredicate
  • org.hibernate.sql.ast.tree.predicate.InListPredicate
  • org.hibernate.sql.ast.tree.predicate.InSubQueryPredicate
  • org.hibernate.sql.ast.tree.predicate.Junction
  • org.hibernate.sql.ast.tree.predicate.LikePredicate
  • org.hibernate.sql.ast.tree.predicate.NegatedPredicate
  • org.hibernate.sql.ast.tree.predicate.NullnessPredicate
  • org.hibernate.sql.ast.tree.predicate.Predicate
  • org.hibernate.sql.ast.tree.predicate.SelfRenderingPredicate
  • org.hibernate.sql.ast.tree.predicate.ThruthnessPredicate
  • org.hibernate.sql.ast.tree.select.QueryGroup
  • org.hibernate.sql.ast.tree.select.QueryPart
  • org.hibernate.sql.ast.tree.select.QuerySpec
  • org.hibernate.sql.ast.tree.select.SelectClause
  • org.hibernate.sql.ast.tree.select.SelectStatement
  • org.hibernate.sql.ast.tree.select.SortSpecification
  • org.hibernate.sql.ast.tree.update.Assignment
  • org.hibernate.sql.ast.tree.update.UpdateStatement
  • org.hibernate.sql.exec.internal.AbstractJdbcParameter
  • org.hibernate.sql.exec.spi.ExecutionContext
  • org.hibernate.sql.exec.spi.JdbcOperation
  • org.hibernate.sql.exec.spi.JdbcParameterBinder
  • org.hibernate.sql.exec.spi.JdbcParameterBindings
  • org.hibernate.sql.model.MutationOperation
  • org.hibernate.sql.model.ast.AbstractRestrictedTableMutation
  • org.hibernate.sql.model.ast.ColumnWriteFragment
  • org.hibernate.sql.model.internal.OptionalTableUpdate
  • org.hibernate.sql.model.internal.TableDeleteCustomSql
  • org.hibernate.sql.model.internal.TableDeleteStandard
  • org.hibernate.sql.model.internal.TableInsertCustomSql
  • org.hibernate.sql.model.internal.TableInsertStandard
  • org.hibernate.sql.model.internal.TableUpdateCustomSql
  • org.hibernate.sql.model.internal.TableUpdateStandard

AstVisitorValueDescriptor

  • org.hibernate.sql.ast.tree.expression.Expression

ModelMutationMqlTranslator

  • org.hibernate.engine.spi.SessionFactoryImplementor
  • org.hibernate.query.spi.QueryOptions
  • org.hibernate.sql.exec.spi.JdbcParameterBinder
  • org.hibernate.sql.exec.spi.JdbcParameterBindings
  • org.hibernate.sql.model.ast.TableMutation
  • org.hibernate.sql.model.internal.TableUpdateNoSet
  • org.hibernate.sql.model.jdbc.JdbcMutationOperation

MongoTranslatorFactory

  • org.hibernate.engine.spi.SessionFactoryImplementor
  • org.hibernate.sql.ast.SqlAstTranslator
  • org.hibernate.sql.ast.SqlAstTranslatorFactory
  • org.hibernate.sql.ast.tree.MutationStatement
  • org.hibernate.sql.ast.tree.select.SelectStatement
  • org.hibernate.sql.exec.spi.JdbcOperationQueryMutation
  • org.hibernate.sql.exec.spi.JdbcSelect
  • org.hibernate.sql.model.ast.TableMutation
  • org.hibernate.sql.model.jdbc.JdbcMutationOperation

MutationMqlTranslator

  • org.hibernate.engine.spi.SessionFactoryImplementor
  • org.hibernate.query.spi.QueryOptions
  • org.hibernate.sql.ast.tree.MutationStatement
  • org.hibernate.sql.exec.internal.JdbcOperationQueryDelete
  • org.hibernate.sql.exec.internal.JdbcOperationQueryInsertImpl
  • org.hibernate.sql.exec.internal.JdbcOperationQueryUpdate
  • org.hibernate.sql.exec.spi.JdbcOperationQueryMutation
  • org.hibernate.sql.exec.spi.JdbcParameterBinder
  • org.hibernate.sql.exec.spi.JdbcParameterBindings

SelectMqlTranslator

  • org.hibernate.engine.spi.SessionFactoryImplementor
  • org.hibernate.query.spi.QueryOptions
  • org.hibernate.sql.ast.tree.Statement
  • org.hibernate.sql.ast.tree.expression.JdbcParameter
  • org.hibernate.sql.ast.tree.select.SelectStatement
  • org.hibernate.sql.exec.internal.JdbcOperationQuerySelect
  • org.hibernate.sql.exec.spi.JdbcParameterBinder
  • org.hibernate.sql.exec.spi.JdbcParameterBindings
  • org.hibernate.sql.exec.spi.JdbcSelect
  • org.hibernate.sql.results.jdbc.spi.JdbcValuesMappingProducerProvider

MongoArrayJdbcType

  • org.hibernate.tool.schema.extract.spi.ColumnTypeInformation
  • org.hibernate.type.descriptor.WrapperOptions
  • org.hibernate.type.descriptor.jdbc.ArrayJdbcType
  • org.hibernate.type.descriptor.jdbc.BasicExtractor
  • org.hibernate.type.descriptor.jdbc.JdbcType
  • org.hibernate.type.descriptor.jdbc.JdbcTypeConstructor
  • org.hibernate.type.spi.TypeConfiguration

MongoStructJdbcType

  • org.hibernate.metamodel.mapping.EmbeddableMappingType
  • org.hibernate.metamodel.spi.RuntimeModelCreationContext
  • org.hibernate.type.descriptor.ValueBinder
  • org.hibernate.type.descriptor.ValueExtractor
  • org.hibernate.type.descriptor.WrapperOptions
  • org.hibernate.type.descriptor.java.JavaType
  • org.hibernate.type.descriptor.jdbc.AggregateJdbcType
  • org.hibernate.type.descriptor.jdbc.BasicBinder
  • org.hibernate.type.descriptor.jdbc.BasicExtractor
  • org.hibernate.type.descriptor.jdbc.StructAttributeValues
  • org.hibernate.type.descriptor.jdbc.StructuredJdbcType

ObjectIdJavaType

  • org.hibernate.type.descriptor.WrapperOptions
  • org.hibernate.type.descriptor.java.AbstractClassJavaType
  • org.hibernate.type.descriptor.jdbc.JdbcType
  • org.hibernate.type.descriptor.jdbc.JdbcTypeIndicators

ObjectIdJdbcType

  • org.hibernate.type.descriptor.ValueBinder
  • org.hibernate.type.descriptor.ValueExtractor
  • org.hibernate.type.descriptor.WrapperOptions
  • org.hibernate.type.descriptor.java.JavaType
  • org.hibernate.type.descriptor.jdbc.BasicBinder
  • org.hibernate.type.descriptor.jdbc.BasicExtractor
  • org.hibernate.type.descriptor.jdbc.JdbcType

MongoConnectionProvider

  • org.hibernate.engine.jdbc.connections.spi.ConnectionProvider
  • org.hibernate.engine.jdbc.connections.spi.DatabaseConnectionInfo
  • org.hibernate.service.spi.InjectService
  • org.hibernate.service.spi.Stoppable

module-info

  • org.hibernate.boot.spi.AdditionalMappingContributor
  • org.hibernate.service.spi.ServiceContributor
@sebersole

Copy link
Copy Markdown

Part of this exercise will be identifying things that should not be internal. Mind you that does not mean everything just because it is on this list ofc. But things related to translators we know should be rethought.

Timing is kind of an issue, but generally moving something from "internal" to "not internal" is generally fine. I had not considered about Stack, that one is unfortunate. I'll think about it.

The more difficult ones, timing-wise, are the "grey area" ones which generally mean they have just not yet gone through the package categorization.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment