public LockingStrategy getLockingStrategy()

in google-cloud-spanner-hibernate-dialect/src/main/java/com/google/cloud/spanner/hibernate/SpannerDialect.java [437:458]


  public LockingStrategy getLockingStrategy(Lockable lockable, LockMode lockMode) {
    // TODO: Remove the override in the super class to use the default implementation.
    switch (lockMode) {
      case PESSIMISTIC_FORCE_INCREMENT:
        return new PessimisticForceIncrementLockingStrategy(lockable, lockMode);
      case UPGRADE_NOWAIT:
      case UPGRADE_SKIPLOCKED:
      case PESSIMISTIC_WRITE:
        return new PessimisticWriteSelectLockingStrategy(lockable, lockMode);
      case PESSIMISTIC_READ:
        return new PessimisticReadSelectLockingStrategy(lockable, lockMode);
      case OPTIMISTIC_FORCE_INCREMENT:
        return new OptimisticForceIncrementLockingStrategy(lockable, lockMode);
      case OPTIMISTIC:
        return new OptimisticLockingStrategy(lockable, lockMode);
      case READ:
        return new SelectLockingStrategy(lockable, lockMode);
      default:
        // WRITE, NONE are not allowed here
        throw new IllegalArgumentException("Unsupported lock mode");
    }
  }