hibernate/hibernate-orm · error · AliasCollisionException

Duplicate alias '%s' at position %s in 'select' clause

Error message

Duplicate alias '%s' at position %s in 'select' clause

What it means

Error "Duplicate alias '%s' at position %s in 'select' clause" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/query/hql/internal/SqmPathRegistryImpl.java:387

	public @Nullable SqmAliasedNode<?> findAliasedNodeByPosition(int position) {
		// NOTE: 1-based
		return position > simpleSelectionNodes.size()
				? null
				: simpleSelectionNodes.get( position - 1 );
	}

	@Override
	public void register(SqmAliasedNode<?> node) {
		checkResultVariable( node );
		simpleSelectionNodes.add( node );
	}

	private void checkResultVariable(SqmAliasedNode<?> selection) {
		final String alias = selection.getAlias();
		if ( alias != null ) {
			final Integer position = findAliasedNodePosition( alias );
			if ( position != null ) {
				throw new AliasCollisionException(
						String.format(
								Locale.ENGLISH,
								"Duplicate alias '%s' at position %s in 'select' clause",
								alias,
								position
						)
				);
			}
		}
	}
}

View on GitHub (pinned to fad1729dce)

Solutions

  1. Two select items share the same alias. Give each aliased select item a distinct alias.

When it happens

Trigger: The same alias/identification variable is declared twice: Duplicate alias '<value>' at position <value> in 'select' clause

Common situations: HQL queries reusing an alias in the from/join clauses or a duplicate result alias in the select clause.


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