hibernate/hibernate-orm · error · SemanticException

Target type '" + root.getModel().getHibernateEntityName() +

Error message

Target type '" + root.getModel().getHibernateEntityName() + "' in 'insert' statement is not an entity

What it means

Error "Target type '" + root.getModel().getHibernateEntityName() + "' in 'insert' statement is not an entity" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java:546

	@Override
	public SqmRoot<R> visitTargetEntity(HqlParser.TargetEntityContext dmlTargetContext) {
		//noinspection unchecked
		return new SqmRoot<>(
				(EntityDomainType<R>) visitEntityName( dmlTargetContext.entityName() ),
				extractAlias( dmlTargetContext.variable() ),
				false,
				nodeBuilder()
		);
	}

	@Override
	public SqmInsertStatement<R> visitInsertStatement(HqlParser.InsertStatementContext ctx) {
		final var dmlTargetContext = ctx.targetEntity();
		final var targetFieldsSpecContext = ctx.targetFields();
		final var root = visitTargetEntity( dmlTargetContext );
		if ( root.getModel() instanceof SqmPolymorphicRootDescriptor<?> ) {
			throw new SemanticException(
					"Target type '" + root.getModel().getHibernateEntityName()
							+ "' in 'insert' statement is not an entity",
					query
			);
		}

		final var queryExpressionContext = ctx.queryExpression();
		if ( queryExpressionContext != null ) {
			final SqmInsertSelectStatement<R> insertStatement =
					new SqmInsertSelectStatement<>( root, nodeBuilder() );
			parameterCollector = insertStatement;
			final var processingState =
					new SqmDmlCreationProcessingState( insertStatement, this );

			processingStateStack.push( processingState );

			try {
				final var stateFieldsProcessingState =

View on GitHub (pinned to fad1729dce)

Solutions

  1. Target a mapped entity in the insert statement.
  2. Check the entity name used in the HQL insert.

When it happens

Trigger: A runtime precondition of the Hibernate API is violated.

Common situations: Occurs when application code or configuration does not satisfy the documented contract of the API being called.


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