sealed abstract class Query[+E, U, C[_]] extends QueryBase[C[U]]
An instance of Query represents a query or view, i.e. a computation of a collection type (Rep[Seq[T]]). It is parameterized with both, the mixed type (the type of values you see e.g. when you call map()) and the unpacked type (the type of values that you get back when you run the query).
Additional extension methods for queries containing a single column are defined in slick.lifted.SingleColumnQueryExtensionMethods.
- Self Type
- Query[E, U, C]
- Source
- Query.scala
- Alphabetic
- By Inheritance
- Query
- QueryBase
- Rep
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Abstract Value Members
- abstract def shaped: ShapedValue[_ <: E, U]
-
abstract
def
toNode: Node
Get the Node for this Rep.
Get the Node for this Rep.
- Definition Classes
- Rep
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
-
def
++[O >: E, R, D[_]](other: Query[O, U, D]): Query[O, U, C]
Return a new query containing the elements from both operands.
Return a new query containing the elements from both operands. Duplicate elements are preserved.
- def ->[B](y: B): (Query[E, U, C], B)
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
def
distinct: Query[E, U, C]
Remove duplicate elements.
Remove duplicate elements. When used on an ordered Query, there is no guarantee in which order duplicates are removed. This method is equivalent to
distinctOn(identity). -
def
distinctOn[F, T](f: (E) ⇒ F)(implicit shape: Shape[_ <: FlatShapeLevel, F, T, _]): Query[E, U, C]
Remove duplicate elements which are the same in the given projection.
Remove duplicate elements which are the same in the given projection. When used on an ordered Query, there is no guarantee in which order duplicates are removed.
-
def
drop(num: Int): Query[E, U, C]
Select all elements except the first
numones. -
def
drop(num: Long): Query[E, U, C]
Select all elements except the first
numones. -
def
drop(num: ConstColumn[Long]): Query[E, U, C]
Select all elements except the first
numones. -
def
encodeRef(path: Node): Query[E, U, C]
Encode a reference into this Rep.
- def ensuring(cond: (Query[E, U, C]) ⇒ Boolean, msg: ⇒ Any): Query[E, U, C]
- def ensuring(cond: (Query[E, U, C]) ⇒ Boolean): Query[E, U, C]
- def ensuring(cond: Boolean, msg: ⇒ Any): Query[E, U, C]
- def ensuring(cond: Boolean): Query[E, U, C]
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
exists: Rep[Boolean]
Test whether this query is non-empty.
-
def
filter[T](f: (E) ⇒ T)(implicit wt: CanBeQueryCondition[T]): Query[E, U, C]
Select all elements of this query which satisfy a predicate.
Select all elements of this query which satisfy a predicate. Unlike
withFilter, this method only allowsRep-valued predicates, so it guards against the accidental use plain Booleans. -
def
filterIf[T](p: Boolean)(f: (E) ⇒ T)(implicit arg0: CanBeQueryCondition[T]): Query[E, U, C]
Applies the given filter function, if the boolean parameter
pevaluates to true.Applies the given filter function, if the boolean parameter
pevaluates to true. If not, the filter will not be part of the query. - def filterNot[T](f: (E) ⇒ T)(implicit wt: CanBeQueryCondition[T]): Query[E, U, C]
-
def
filterOpt[V, T](optValue: Option[V])(f: (E, V) ⇒ T)(implicit arg0: CanBeQueryCondition[T]): Query[E, U, C]
Applies the given filter, if the Option value is defined.
Applies the given filter, if the Option value is defined. If the value is None, the filter will not be part of the query.
-
def
flatMap[F, T, D[_]](f: (E) ⇒ Query[F, T, D]): Query[F, T, C]
Build a new query by applying a function to all elements of this query and using the elements of the resulting queries.
Build a new query by applying a function to all elements of this query and using the elements of the resulting queries. This corresponds to an implicit inner join in SQL.
-
def
forUpdate: Query[E, U, C]
Specify part of a select statement for update and marked for row level locking
- def formatted(fmtstr: String): String
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
groupBy[K, T, G, P](f: (E) ⇒ K)(implicit kshape: Shape[_ <: FlatShapeLevel, K, T, G], vshape: Shape[_ <: FlatShapeLevel, E, _, P]): Query[(G, Query[P, U, Seq]), (T, Query[P, U, Seq]), C]
Partition this query into a query of pairs of a key and a nested query containing the elements for the key, according to some discriminator function.
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
join[E2, U2, D[_]](q2: Query[E2, U2, D]): BaseJoinQuery[E, E2, U, U2, C, E, E2]
Join two queries with a cross join or inner join.
Join two queries with a cross join or inner join. An optional join predicate can be specified later by calling
on. -
def
joinFull[E1 >: E, E2, U2, D[_], O1, U1, O2](q2: Query[E2, _, D])(implicit ol1: OptionLift[E1, O1], sh1: Shape[FlatShapeLevel, O1, U1, _], ol2: OptionLift[E2, O2], sh2: Shape[FlatShapeLevel, O2, U2, _]): BaseJoinQuery[O1, O2, U1, U2, C, E, E2]
Join two queries with a full outer join.
Join two queries with a full outer join. An optional join predicate can be specified later by calling
on. Both sides of the join are lifted to anOption. If at least one element on either side matches the other side, all matching elements are returned asSome, otherwise a singleNonerow is returned. -
def
joinLeft[E2, U2, D[_], O2](q2: Query[E2, _, D])(implicit ol: OptionLift[E2, O2], sh: Shape[FlatShapeLevel, O2, U2, _]): BaseJoinQuery[E, O2, U, U2, C, E, E2]
Join two queries with a left outer join.
Join two queries with a left outer join. An optional join predicate can be specified later by calling
on. The right side of the join is lifted to anOption. If at least one element on the right matches, all matching elements are returned asSome, otherwise a singleNonerow is returned. -
def
joinRight[E1 >: E, E2, U2, D[_], O1, U1](q2: Query[E2, U2, D])(implicit ol: OptionLift[E1, O1], sh: Shape[FlatShapeLevel, O1, U1, _]): BaseJoinQuery[O1, E2, U1, U2, C, E, E2]
Join two queries with a right outer join.
Join two queries with a right outer join. An optional join predicate can be specified later by calling
on. The left side of the join is lifted to anOption. If at least one element on the left matches, all matching elements are returned asSome, otherwise a singleNonerow is returned. -
def
length: Rep[Int]
The total number of elements (i.e.
The total number of elements (i.e. rows).
-
def
map[F, G, T](f: (E) ⇒ F)(implicit shape: Shape[_ <: FlatShapeLevel, F, T, G]): Query[G, T, C]
Build a new query by applying a function to all elements of this query.
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def pack[R](implicit packing: Shape[_ <: FlatShapeLevel, E, _, R]): Query[R, U, C]
- final lazy val packed: Node
-
def
size: Rep[Int]
The total number of elements (i.e.
The total number of elements (i.e. rows).
-
def
sortBy[T](f: (E) ⇒ T)(implicit ev: (T) ⇒ Ordered): Query[E, U, C]
Sort this query according to a function which extracts the ordering criteria from the query's elements.
-
def
sorted(implicit ev: (E) ⇒ Ordered): Query[E, U, C]
Sort this query according to a the ordering of its elements.
-
def
subquery: Query[E, U, C]
Force a subquery to be created when using this Query as part of a larger Query.
Force a subquery to be created when using this Query as part of a larger Query. This method should never be necessary for correctness. If a query works with an explicit
.subquerycall but fails without, this should be considered a bug in Slick. The method is exposed in the API to enable workarounds to be written in such cases. -
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
take(num: Int): Query[E, U, C]
Select the first
numelements. -
def
take(num: Long): Query[E, U, C]
Select the first
numelements. -
def
take(num: ConstColumn[Long]): Query[E, U, C]
Select the first
numelements. -
def
to[D[_]](implicit ctc: TypedCollectionTypeConstructor[D]): Query[E, U, D]
Change the collection type to build when executing the query.
-
def
toString(): String
- Definition Classes
- Rep → AnyRef → Any
-
def
union[O >: E, R, D[_]](other: Query[O, U, D]): Query[O, U, C]
Return a new query containing the elements from both operands.
Return a new query containing the elements from both operands. Duplicate elements are eliminated from the result.
-
def
unionAll[O >: E, R, D[_]](other: Query[O, U, D]): Query[O, U, C]
Return a new query containing the elements from both operands.
Return a new query containing the elements from both operands. Duplicate elements are preserved.
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
withFilter[T](f: (E) ⇒ T)(implicit arg0: CanBeQueryCondition[T]): Query[E, U, C]
Select all elements of this query which satisfy a predicate.
Select all elements of this query which satisfy a predicate. This method is used when desugaring for-comprehensions over queries. There is no reason to call it directly because it is the same as
filter. -
def
zip[E2, U2, D[_]](q2: Query[E2, U2, D]): Query[(E, E2), (U, U2), C]
Return a query formed from this query and another query by combining corresponding elements in pairs.
-
def
zipWith[E2, U2, F, G, T, D[_]](q2: Query[E2, U2, D], f: (E, E2) ⇒ F)(implicit shape: Shape[_ <: FlatShapeLevel, F, T, G]): Query[G, T, C]
Return a query formed from this query and another query by combining corresponding elements with the specified function.
-
def
zipWithIndex: BaseJoinQuery[E, Rep[Long], U, Long, C, E, Rep[Long]]
Zip this query with its indices (starting at 0).
- def →[B](y: B): (Query[E, U, C], B)
Deprecated Value Members
-
def
countDistinct: Rep[Int]
The number of distinct elements of the query.
The number of distinct elements of the query.
- Annotations
- @deprecated
- Deprecated
(Since version 3.2) Use
lengthondistinctordistinctOninstead ofcountDistinct
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated

edit this text on github
Scala Language-Integrated Connection Kit
This is the API documentation for the Slick database library. It should be used as an additional resource to the user manual.
Further documentation for Slick can be found on the documentation pages.
To the slick package list...