hibernate/hibernate-orm · error · IllegalArgumentException

Invalid lock mode: WRITE

Error message

Invalid lock mode: WRITE

What it means

Error "Invalid lock mode: WRITE" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/event/spi/LoadEvent.java:90

		super( source );
		this.entityId = entityId;
		this.entityClassName = entityClassName;
		this.instanceToLoad = instanceToLoad;
		this.lockOptions = lockOptions;
		this.isAssociationFetch = isAssociationFetch;
		this.readOnly = readOnly;
		validate();
	}

	@Internal
	public void validate() {
		if ( entityId == null ) {
			throw new IllegalArgumentException( "Identifier may not be null" );
		}

		final var lockMode = lockOptions.getLockMode();
		if ( lockMode == LockMode.WRITE ) {
			throw new IllegalArgumentException( "Invalid lock mode: " + LockMode.WRITE );
		}
		else if ( lockMode == null ) {
			lockOptions.setLockMode( LockMode.NONE );
		}
	}

	@Nonnull
	public Object getEntityId() {
		return entityId;
	}

	@Internal
	public void setEntityId(@Nonnull Object entityId) {
		this.entityId = entityId;
	}

	@Nullable
	public String getEntityClassName() {

View on GitHub (pinned to fad1729dce)

Solutions

  1. Do not use LockMode.WRITE with load(); WRITE is reserved for internal use during insert/update.
  2. Use PESSIMISTIC_WRITE or another supported lock mode for explicit locking on load.

When it happens

Trigger: Thrown when an unsupported LockMode is supplied for the attempted lock operation.

Common situations: Typical situations: passing LockMode.WRITE where it is not permitted; a lock mode computed from user input without validation.


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