Class/Object

io.getquill.sql.norm

InContext

Related Docs: object InContext | package norm

Permalink

case class InContext(from: List[FromContext]) extends Product with Serializable

Simple utility that checks if if an AST entity refers to a entity. It traverses through the context types to find out what kind of context a variable refers to. For example, in a query like:

query[Pair].map(p => Pair(p.a, p.b)).distinct.map(p => (p.b, p.a))

Yielding SQL like this:

SELECT p.b, p.a FROM (SELECT DISTINCT p.a, p.b FROM pair p) AS p

the inner p.a and p.b will have a TableContext while the outer p.b and p.a will have a QueryContext.

Note that there are some cases where the id of a field is not in a FromContext at all. For example, in a query like this:

query[Human].filter(h => query[Robot].filter(r => r.friend == h.id).nonEmpty)

Where the sql produced is something like this:

SELECT h.id FROM human h WHERE EXISTS (SELECT r.* FROM robot r WHERE r.friend = h.id)

the field r.friend is selected from a sub-query of an SQL operation (i.e. EXISTS (...)) so a from-context of it will not exist at all. When deciding which properties to treat as sub-select properties (e.g. if we want to make sure NOT to apply a naming-schema on them) we need to take care to understand that we may not know the FromContext that a property comes from since it may not exist.

Linear Supertypes
Serializable, Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. InContext
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new InContext(from: List[FromContext])

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def contextReferenceType(ast: Ast): Option[InContextType]

    Permalink
  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. val from: List[FromContext]

    Permalink
  10. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  11. def isEntityReference(ast: Ast): Boolean

    Permalink
  12. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  13. def isSubselect(ast: Ast): Boolean

    Permalink
  14. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  18. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped