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
- 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.