hibernate/hibernate-orm · error · MappingException

Cloud Spanner does not support sequences with an increment s

Error message

Cloud Spanner does not support sequences with an increment size != 1

What it means

Error "Cloud Spanner does not support sequences with an increment size != 1" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/dialect/sequence/SpannerSequenceSupport.java:36

	private final SpannerDialect dialect;

	public SpannerSequenceSupport(SpannerDialect dialect) {
		this.dialect = dialect;
	}

	@Override
	public String getCreateSequenceString(String sequenceName) throws MappingException {
		return getCreateSequenceString(sequenceName, 1, 1);
	}

	@Override
	public String getCreateSequenceString(String sequenceName, int initialValue, int incrementSize)
			throws MappingException {
		if (incrementSize == 1) {
			return getCreateSequenceString(sequenceName, initialValue, "");
		}
		throw new MappingException("Cloud Spanner does not support sequences with an increment size != 1");
	}

	@Override
	public String[] getCreateSequenceStrings(String sequenceName, int initialValue, int incrementSize, String options)
			throws MappingException {
		if (incrementSize == 1) {
			return new String[] { getCreateSequenceString(sequenceName, initialValue, options) };
		}
		throw new MappingException("Cloud Spanner does not support sequences with an increment size != 1");
	}

	protected String getCreateSequenceString(String sequenceName, int initialValue, String additionalOptions) {
		final var builder = new StringBuilder("create sequence if not exists ");
		builder.append(sequenceName).append(" options(sequence_kind=\"bit_reversed_positive\"");
		if (initialValue != 1) {
			builder.append(", start_with_counter=").append(initialValue);
		}
		if (isNotEmpty(additionalOptions)) {

View on GitHub (pinned to fad1729dce)

Solutions

  1. Use an increment size of 1 for sequences on Cloud Spanner
  2. Remove the custom increment from the sequence definition, or use a table/UUID based identifier generator

When it happens

Trigger: Thrown at hibernate-core/src/main/java/org/hibernate/dialect/sequence/SpannerSequenceSupport.java:36 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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