Packages

trait SynchronousDatabaseAction[+R, +S <: NoStream, -C <: BasicActionContext, -SC <: BasicStreamingActionContext, -E <: Effect] extends DatabaseAction[R, S, E]

A synchronous database action provides a function from an ActionContext to the result type. BasicBackend.DatabaseDef.run supports this kind of action out of the box through BasicBackend.DatabaseDef.runSynchronousDatabaseAction so that run does not need to be extended if all primitive database actions can be expressed in this way. These actions also implement construction-time fusion for the andFinally, andThen, asTry, failed, withPinnedSession and zip operations.

The execution engine ensures that an ActionContext is never used concurrently and that all state changes performed by one invocation of a SynchronousDatabaseAction are visible to the next invocation of the same or a different SynchronousDatabaseAction.

Self Type
SynchronousDatabaseAction[R, S, C, SC, E]
Source
DBIOAction.scala
Linear Supertypes
DatabaseAction[R, S, E], DBIOAction[R, S, E], Dumpable, AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SynchronousDatabaseAction
  2. DatabaseAction
  3. DBIOAction
  4. Dumpable
  5. AnyRef
  6. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. abstract type StreamState >: Null <: AnyRef

    The type used by this action for the state of a suspended stream.

    The type used by this action for the state of a suspended stream. A call to emitStream produces such a state which is then fed back into the next call.

Abstract Value Members

  1. abstract def getDumpInfo: DumpInfo

    Return the name, main info, attribute info and named children

    Return the name, main info, attribute info and named children

    Definition Classes
    Dumpable
  2. abstract def run(context: C): R

    Run this action synchronously and produce a result, or throw an Exception to indicate a failure.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from SynchronousDatabaseAction[R, S, C, SC, E] toany2stringadd[SynchronousDatabaseAction[R, S, C, SC, E]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (SynchronousDatabaseAction[R, S, C, SC, E], B)
    Implicit
    This member is added by an implicit conversion from SynchronousDatabaseAction[R, S, C, SC, E] toArrowAssoc[SynchronousDatabaseAction[R, S, C, SC, E]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def >>[R2, S2 <: NoStream, E2 <: Effect](a: DBIOAction[R2, S2, E2]): DBIOAction[R2, S2, E with E2]

    A shortcut for andThen.

    A shortcut for andThen.

    Definition Classes
    DBIOAction
  7. def andFinally[E2 <: Effect](a: DBIOAction[_, NoStream, E2]): DBIOAction[R, S, E with E2]

    Run another action after this action, whether it succeeds or fails, and then return the result of the first action.

    Run another action after this action, whether it succeeds or fails, and then return the result of the first action. If the first action fails, its failure is propagated, whether the second action fails or succeeds. If the first action succeeds, a failure of the second action is propagated.

    Definition Classes
    SynchronousDatabaseActionDBIOAction
  8. def andThen[R2, S2 <: NoStream, E2 <: Effect](a: DBIOAction[R2, S2, E2]): DBIOAction[R2, S2, E with E2]

    Run another action after this action, if it completed successfully, and return the result of the second action.

    Run another action after this action, if it completed successfully, and return the result of the second action. If either of the two actions fails, the resulting action also fails.

    Definition Classes
    SynchronousDatabaseActionDBIOAction
  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def asTry: DBIOAction[Try[R], NoStream, E]

    Convert a successful result v of this action into a successful result Success(v) and a failure t into a successful result Failure(t).

    Convert a successful result v of this action into a successful result Success(v) and a failure t into a successful result Failure(t). This is the most generic combinator that can be used for error recovery. If possible, use andFinally or cleanUp instead, because those combinators, unlike asTry, support streaming.

    Definition Classes
    SynchronousDatabaseActionDBIOAction
  11. def cancelStream(context: SC, state: StreamState): Unit

    Dispose of a StreamState when a streaming action is cancelled.

    Dispose of a StreamState when a streaming action is cancelled. Whenever emitStream returns null or throws an Exception, it needs to dispose of the state itself. This method will not be called in these cases.

  12. def cleanUp[E2 <: Effect](f: (Option[Throwable]) => DBIOAction[_, NoStream, E2], keepFailure: Boolean = true)(implicit executor: ExecutionContext): DBIOAction[R, S, E with E2]

    Run another action after this action, whether it succeeds or fails, in order to clean up or transform an error produced by this action.

    Run another action after this action, whether it succeeds or fails, in order to clean up or transform an error produced by this action. The clean-up action is computed from the failure of this action, wrapped in Some, or None if this action succeeded.

    keepFailure

    If this action returns successfully, the resulting action also returns successfully unless the clean-up action fails. If this action fails and keepFailure is set to true (the default), the resulting action fails with the same error, no matter whether the clean-up action succeeds or fails. If keepFailure is set to false, an error from the clean-up action will override the error from this action.

    Definition Classes
    DBIOAction
  13. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
  14. def collect[R2](pf: PartialFunction[R, R2])(implicit executor: ExecutionContext): DBIOAction[R2, NoStream, E]

    Transform the result of a successful execution of this action, if the given partial function is defined at that value, otherwise, the result DBIOAction will fail with a NoSuchElementException.

    Transform the result of a successful execution of this action, if the given partial function is defined at that value, otherwise, the result DBIOAction will fail with a NoSuchElementException.

    If this action fails, the resulting action also fails.

    Definition Classes
    DBIOAction
  15. def emitStream(context: SC, limit: Long, state: StreamState): StreamState

    Run this action synchronously and emit results to the context.

    Run this action synchronously and emit results to the context. This methods may throw an Exception to indicate a failure.

    limit

    The maximum number of results to emit, or Long.MaxValue for no limit.

    state

    The state returned by a previous invocation of this method, or null if a new stream should be produced.

    returns

    A stream state if there are potentially more results available, or null if the stream is finished.

  16. def ensuring(cond: (SynchronousDatabaseAction[R, S, C, SC, E]) => Boolean, msg: => Any): SynchronousDatabaseAction[R, S, C, SC, E]
    Implicit
    This member is added by an implicit conversion from SynchronousDatabaseAction[R, S, C, SC, E] toEnsuring[SynchronousDatabaseAction[R, S, C, SC, E]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  17. def ensuring(cond: (SynchronousDatabaseAction[R, S, C, SC, E]) => Boolean): SynchronousDatabaseAction[R, S, C, SC, E]
    Implicit
    This member is added by an implicit conversion from SynchronousDatabaseAction[R, S, C, SC, E] toEnsuring[SynchronousDatabaseAction[R, S, C, SC, E]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  18. def ensuring(cond: Boolean, msg: => Any): SynchronousDatabaseAction[R, S, C, SC, E]
    Implicit
    This member is added by an implicit conversion from SynchronousDatabaseAction[R, S, C, SC, E] toEnsuring[SynchronousDatabaseAction[R, S, C, SC, E]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  19. def ensuring(cond: Boolean): SynchronousDatabaseAction[R, S, C, SC, E]
    Implicit
    This member is added by an implicit conversion from SynchronousDatabaseAction[R, S, C, SC, E] toEnsuring[SynchronousDatabaseAction[R, S, C, SC, E]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  20. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  21. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  22. def failed: DBIOAction[Throwable, NoStream, E]

    Return an action which contains the Throwable with which this action failed as its result.

    Return an action which contains the Throwable with which this action failed as its result. If this action succeeded, the resulting action fails with a NoSuchElementException.

    Definition Classes
    SynchronousDatabaseActionDBIOAction
  23. final def filter(p: (R) => Boolean)(implicit executor: ExecutionContext): DBIOAction[R, NoStream, E]

    Filter the result of this action with the given predicate.

    Filter the result of this action with the given predicate. If the predicate matches, the original result is returned, otherwise the resulting action fails with a NoSuchElementException.

    Definition Classes
    DBIOAction
  24. def flatMap[R2, S2 <: NoStream, E2 <: Effect](f: (R) => DBIOAction[R2, S2, E2])(implicit executor: ExecutionContext): DBIOAction[R2, S2, E with E2]

    Use the result produced by the successful execution of this action to compute and then run the next action in sequence.

    Use the result produced by the successful execution of this action to compute and then run the next action in sequence. The resulting action fails if either this action, the computation, or the computed action fails.

    Definition Classes
    DBIOAction
  25. def flatten[R2, S2 <: NoStream, E2 <: Effect](implicit ev: <:<[R, DBIOAction[R2, S2, E2]]): DBIOAction[R2, S2, E with E2]

    Creates a new DBIOAction with one level of nesting flattened, this method is equivalent to flatMap(identity).

    Creates a new DBIOAction with one level of nesting flattened, this method is equivalent to flatMap(identity).

    Definition Classes
    DBIOAction
  26. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  27. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  28. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  29. def isLogged: Boolean

    Whether or not this action should be included in log output by default.

    Whether or not this action should be included in log output by default.

    Definition Classes
    DatabaseActionDBIOAction
  30. def map[R2](f: (R) => R2)(implicit executor: ExecutionContext): DBIOAction[R2, NoStream, E]

    Transform the result of a successful execution of this action.

    Transform the result of a successful execution of this action. If this action fails, the resulting action also fails.

    Definition Classes
    DBIOAction
  31. def named(name: String): DBIOAction[R, S, E]

    Get a wrapping action which has a name that will be included in log output.

    Get a wrapping action which has a name that will be included in log output.

    Definition Classes
    DBIOAction
  32. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  33. def nonFusedEquivalentAction: DBIOAction[R, S, E]

    Get the equivalent non-fused action if this action has been fused, otherwise this action is returned.

    Get the equivalent non-fused action if this action has been fused, otherwise this action is returned.

    Definition Classes
    DBIOAction
  34. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  35. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  36. def supportsStreaming: Boolean

    Whether or not this action supports streaming results.

    Whether or not this action supports streaming results. An action with a Streaming result type must either support streaming directly or have a nonFusedEquivalentAction which supports streaming. This flag is not used if the Action has a NoStream result type.

  37. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  38. def toString(): String
    Definition Classes
    AnyRef → Any
  39. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  40. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  41. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  42. def withFilter(p: (R) => Boolean)(implicit executor: ExecutionContext): DBIOAction[R, NoStream, E]
    Definition Classes
    DBIOAction
  43. def withPinnedSession: DBIOAction[R, S, E]

    Use a pinned database session when running this action.

    Use a pinned database session when running this action. If it is composed of multiple database actions, they will all use the same session, even when sequenced with non-database actions. For non-composite or non-database actions, this has no effect.

    Definition Classes
    SynchronousDatabaseActionDBIOAction
  44. def zip[R2, E2 <: Effect](a: DBIOAction[R2, NoStream, E2]): DBIOAction[(R, R2), NoStream, E with E2]

    Run another action after this action, if it completed successfully, and return the result of both actions.

    Run another action after this action, if it completed successfully, and return the result of both actions. If either of the two actions fails, the resulting action also fails.

    Definition Classes
    SynchronousDatabaseActionDBIOAction
  45. def zipWith[R2, E2 <: Effect, R3](a: DBIOAction[R2, NoStream, E2])(f: (R, R2) => R3)(implicit executor: ExecutionContext): DBIOAction[R3, NoStream, E with E2]

    Run another action after this action, if it completed successfully, and zip the result of both actions with a function f, then create a new DBIOAction holding this result, If either of the two actions fails, the resulting action also fails.

    Run another action after this action, if it completed successfully, and zip the result of both actions with a function f, then create a new DBIOAction holding this result, If either of the two actions fails, the resulting action also fails.

    Definition Classes
    DBIOAction

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

  2. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from SynchronousDatabaseAction[R, S, C, SC, E] toStringFormat[SynchronousDatabaseAction[R, S, C, SC, E]] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.12.16) Use formatString.format(value) instead of value.formatted(formatString), or use the f"" string interpolator. In Java 15 and later, formatted resolves to the new method in String which has reversed parameters.

  3. def [B](y: B): (SynchronousDatabaseAction[R, S, C, SC, E], B)
    Implicit
    This member is added by an implicit conversion from SynchronousDatabaseAction[R, S, C, SC, E] toArrowAssoc[SynchronousDatabaseAction[R, S, C, SC, E]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from DatabaseAction[R, S, E]

Inherited from DBIOAction[R, S, E]

Inherited from Dumpable

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromSynchronousDatabaseAction[R, S, C, SC, E] to any2stringadd[SynchronousDatabaseAction[R, S, C, SC, E]]

Inherited by implicit conversion StringFormat fromSynchronousDatabaseAction[R, S, C, SC, E] to StringFormat[SynchronousDatabaseAction[R, S, C, SC, E]]

Inherited by implicit conversion Ensuring fromSynchronousDatabaseAction[R, S, C, SC, E] to Ensuring[SynchronousDatabaseAction[R, S, C, SC, E]]

Inherited by implicit conversion ArrowAssoc fromSynchronousDatabaseAction[R, S, C, SC, E] to ArrowAssoc[SynchronousDatabaseAction[R, S, C, SC, E]]

Ungrouped