hibernate/hibernate-orm · error · AnnotationException

Unknown LockMode in hint: " + query + ":" + HibernateHints.H

Error message

Unknown LockMode in hint: " + query + ":" + HibernateHints.HINT_NATIVE_LOCK_MODE

What it means

Error "Unknown LockMode in hint: " + query + ":" + HibernateHints.HINT_NATIVE_LOCK_MODE" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/boot/model/internal/QueryHintDefinition.java:166

					? null
					: FlushModeTypeHelper.queryFlushModeFromHint( value );
		}
		catch (MappingException e) {
			throw new AnnotationException( "Unable to interpret FlushMode in named query hint: " + queryName, e );
		}
	}

	@Nullable
	public LockMode getLockMode(String query) {
		final var value = (String) hintsMap.get( HibernateHints.HINT_NATIVE_LOCK_MODE );
		if ( value == null ) {
			return null;
		}
		try {
			return LockMode.fromExternalForm( value );
		}
		catch ( MappingException e ) {
			throw new AnnotationException( "Unknown LockMode in hint: " + query
											+ ":" + HibernateHints.HINT_NATIVE_LOCK_MODE, e );
		}
	}

	@Nonnull
	public LockOptions determineLockOptions(NamedQuery namedQueryAnnotation) {
		return determineLockOptions( namedQueryAnnotation.lockMode(), specLockTimeout(), followOnStrategy() );
	}

	@Nullable
	private Integer specLockTimeout() {
		final Integer jakartaLockTimeout = getInteger( AvailableSettings.JAKARTA_LOCK_TIMEOUT );
		if ( jakartaLockTimeout != null ) {
			return jakartaLockTimeout;
		}

		return getInteger( AvailableSettings.JPA_LOCK_TIMEOUT );
	}

View on GitHub (pinned to fad1729dce)

Solutions

  1. Use a valid LockMode value in the native lock mode hint.

When it happens

Trigger: A named query (or its hints) is declared with missing or invalid values.

Common situations: @NamedQuery/@NamedNativeQuery without a name, both resultSetMapping and an inline mapping, or a hint value of the wrong type (boolean/int/CacheMode/FlushMode/LockMode).


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