hibernate/hibernate-orm · error · NonUniqueDiscoveredSqlAliasException

Encountered a duplicated sql alias [{}] during auto-discover

Error message

Encountered a duplicated sql alias [{}] during auto-discovery of a native-sql query

What it means

Error "Encountered a duplicated sql alias [{}] during auto-discovery of a native-sql query" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/query/results/internal/ResultSetMappingImpl.java:258

					addColumns( aliases, knownDuplicateAliases,
							persister.getSubclassPropertyColumnNames( i ) );
				}
			}
		}
		final var aliases = new String[rowSize];
		final Map<String, Boolean> aliasHasDuplicates = new HashMap<>( rowSize );
		for ( int i = 0; i < rowSize; i++ ) {
			aliasHasDuplicates.compute(
					aliases[i] = jdbcResultsMetadata.resolveColumnName( i + 1 ),
					(k, v) -> v == null ? Boolean.FALSE : Boolean.TRUE
			);
		}
		// Only check for duplicates for the selections that we actually use
		for ( var sqlSelection : sqlSelections ) {
			final String alias = aliases[sqlSelection.getValuesArrayPosition()];
			if ( !knownDuplicateAliases.contains( alias )
					&& aliasHasDuplicates.get( alias ) == Boolean.TRUE ) {
				throw new NonUniqueDiscoveredSqlAliasException(
						"Encountered a duplicated sql alias [" + alias + "] during auto-discovery of a native-sql query"
				);
			}
		}
	}

	private List<DomainResult<?>> collectDomainResults(
			JdbcValuesMetadata jdbcResultsMetadata,
			SessionFactoryImplementor sessionFactory,
			int numberOfResults,
			List<SqlSelection> sqlSelections,
			DomainResultCreationStateImpl creationState) {
		final List<DomainResult<?>> domainResults = new ArrayList<>( numberOfResults );
		for ( int i = 0; i < numberOfResults; i++ ) {
			final var domainResult =
					buildDomainResult(
							jdbcResultsMetadata,
							sessionFactory,

View on GitHub (pinned to fad1729dce)

Solutions

  1. A SQL alias appeared twice during auto-discovery of the native query. Give each selected column a unique alias.

When it happens

Trigger: A runtime precondition of the Hibernate query API is violated: Encountered a duplicated sql alias [<value>] during auto-discovery of a native-sql query

Common situations: Application code or configuration calls the query API in a way that violates its documented contract; the interpolated values in the message identify the offending input.


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