@Override public void lock( Serializable id, Object version, Object object, int timeout, SessionImplementor session) throws StaleObjectStateException, JDBCException { MapDatastoreProvider dataStore = getProvider(session); EntityKey key = EntityKeyBuilder.fromData( ((OgmEntityPersister) lockable).getRootEntityKeyMetadata(), identifierGridType, id, session); dataStore.writeLock(key, timeout); // FIXME check the version number as well and raise an optimistic lock exception if there is an // issue JPA 2 spec: 3.4.4.2 // (Comment by Emmanuel) }