code: @Override
  	public LockingStrategy getLockingStrategy(Lockable lockable, LockMode lockMode) {
  		if ( lockMode == LockMode.PESSIMISTIC_FORCE_INCREMENT ) {
  			return new PessimisticForceIncrementLockingStrategy( lockable, lockMode );
  		}
  		else if ( lockMode == LockMode.PESSIMISTIC_WRITE ) {
  			return new InfinispanPessimisticWriteLockingStrategy<EK>( lockable, lockMode );
  		}
  		else if ( lockMode == LockMode.PESSIMISTIC_READ ) {
  			// TODO find a more efficient pessimistic read
  			return new InfinispanPessimisticWriteLockingStrategy<EK>( lockable, lockMode );
  		}
  		else if ( lockMode == LockMode.OPTIMISTIC ) {
  			return new OptimisticLockingStrategy( lockable, lockMode );
  		}
  		else if ( lockMode == LockMode.OPTIMISTIC_FORCE_INCREMENT ) {
  			return new OptimisticForceIncrementLockingStrategy( lockable, lockMode );
  		}
  		else {
  			return null;
  		}
  	}
docs: Get a strategy instance which knows how to acquire a database-level lock
  of the specified/mode for this dialect.
  
  @param lockable The persister for the entity to be locked.
  @param lockMode The type of lock to be acquired.
  @return The appropriate locking strategy.
  @since 3.2