hibernate/hibernate-orm · error · IllegalArgumentException

TypeDefinition to register cannot define null #typeImplement

Error message

TypeDefinition to register cannot define null #typeImplementorClass

What it means

Error "TypeDefinition to register cannot define null #typeImplementorClass" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/boot/internal/TypeDefinitionRegistryStandardImpl.java:72

		// Ultimately should maybe have TypeDefinition or the registry keep explicit
		// track of auto-applied definitions.
		return basicJavaType.getJavaType() == null ? null
				: typeDefinitionMap.get( basicJavaType.getTypeName() );
	}

	@Override
	public TypeDefinitionRegistry register(TypeDefinition typeDefinition) {
		return register( typeDefinition, DuplicationStrategy.OVERWRITE );
	}

	@Override
	public TypeDefinitionRegistry register(TypeDefinition typeDefinition, DuplicationStrategy duplicationStrategy) {
		if ( typeDefinition == null ) {
			throw new IllegalArgumentException( "TypeDefinition to register cannot be null" );
		}

		if ( typeDefinition.getTypeImplementorClass() == null ) {
			throw new IllegalArgumentException( "TypeDefinition to register cannot define null #typeImplementorClass" );
		}

		final String typeDefinitionName = typeDefinition.getName();
		if ( !isEmpty( typeDefinitionName ) ) {
			register( typeDefinitionName, typeDefinition, duplicationStrategy );
		}

		final String[] registrationKeys = typeDefinition.getRegistrationKeys();
		if ( registrationKeys != null ) {
			for ( String registrationKey : registrationKeys ) {
				register( registrationKey, typeDefinition, duplicationStrategy );
			}
		}

		return this;
	}

	private void register(String name, TypeDefinition typeDefinition, DuplicationStrategy duplicationStrategy) {

View on GitHub (pinned to fad1729dce)

Solutions

  1. Provide a non-null typeImplementorClass on the TypeDefinition before registering it.
  2. Check the TypeDefinition construction code; the implementor class argument may be passed as null.
  3. Use the TypeDefinitionBuilder (or equivalent) with all mandatory attributes set.

When it happens

Trigger: An invalid TypeDefinition is registered or overwritten in the type registry.

Common situations: Registering a null TypeDefinition, one without a type implementor class, or re-registering an existing name without overwrite permission.


AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22). Data as JSON: /api/errors/27668d7841032ed2. Report an issue: GitHub.