hibernate/hibernate-orm · error · MappingException

@EmbeddedColumnNaming expects pattern with exactly 1 format

Error message

@EmbeddedColumnNaming expects pattern with exactly 1 format maker, but found %s - `%s` (%s#%s)

What it means

Error "@EmbeddedColumnNaming expects pattern with exactly 1 format maker, but found %s - `%s` (%s#%s)" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/boot/model/internal/EmbeddableBinder.java:1089

		if ( inferredData.getAttributeMember() == null ) {
			// generally indicates parts of a plural mapping (element, key, bag-id)
			return;
		}

		final var columnNaming =
				inferredData.getAttributeMember().getDirectAnnotationUsage( EmbeddedColumnNaming.class );
		if ( columnNaming == null ) {
			return;
		}

		final String columnNamingPattern = NullnessHelper.coalesce(
				columnNaming.value(),
				inferredData.getPropertyName() + "_%s"
		);

		final int markerCount = StringHelper.count( columnNamingPattern, '%' );
		if ( markerCount != 1 ) {
			throw new MappingException( String.format(
					Locale.ROOT,
					"@EmbeddedColumnNaming expects pattern with exactly 1 format maker, but found %s - `%s` (%s#%s)",
					markerCount,
					columnNamingPattern,
					inferredData.getAttributeMember().getDeclaringType().getName(),
					inferredData.getAttributeMember().getName()
			) );
		}

		embeddable.setColumnNamingPattern( columnNamingPattern );
	}

	private static ConstructorDetails resolveInstantiator(TypeDetails embeddableClass) {
		return embeddableClass == null ? null : resolveInstantiator( embeddableClass.determineRawClass() );
	}

	private static ConstructorDetails resolveInstantiator(ClassDetails embeddableClass) {
		if ( embeddableClass == null ) {

View on GitHub (pinned to fad1729dce)

Solutions

  1. Change the @EmbeddedColumnNaming pattern to contain exactly one format marker.

When it happens

Trigger: An @Embeddable / @Embedded / @ElementCollection mapping violates an embeddable mapping constraint.

Common situations: Embeddables with @Id members, inheritance, recursive composition, or properties split across multiple tables; or @Convert/@EmbeddedTable placed where unsupported.


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