trait RowParser[+A] extends (Row) ⇒ SqlResult[A]
- Alphabetic
- By Inheritance
- RowParser
- Function1
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Concrete Value Members
-
def
*: ResultSetParser[List[A]]
Returns possibly empty list parsed from result.
Returns possibly empty list parsed from result.
val price = 125 SQL"SELECT name FROM item WHERE price < \$price".as(scalar[String].*)
-
def
+: ResultSetParser[List[A]]
Returns non empty list parse from result, or raise error if there is no result.
Returns non empty list parse from result, or raise error if there is no result.
import anorm.SQL import anorm.SqlParser.str val parser = str("title") ~ str("descr") SQL("SELECT title, descr FROM pages").as(parser.+) // at least 1 page
-
def
<~[B](p: RowParser[B]): RowParser[A]
Combines this current parser with the one given as argument
p
, if and only if the current parser can first successfully parse a row, without keeping the values of the parserp
.Combines this current parser with the one given as argument
p
, if and only if the current parser can first successfully parse a row, without keeping the values of the parserp
.import anorm.{ SQL, SqlParser }, SqlParser.{ int, str } val Int = SQL("SELECT * FROM test"). as((int("id") <~ str("val")).single) // row has to have an int column 'id' and a string 'val' one, // keeping only 'id' in result
-
def
>>[B](f: (A) ⇒ RowParser[B]): RowParser[B]
Alias for flatMap
-
def
?: RowParser[Option[A]]
Returns a row parser for optional column, that will turn missing or null column as None.
-
def
andThen[A](g: (SqlResult[A]) ⇒ A): (Row) ⇒ A
- Definition Classes
- Function1
- Annotations
- @unspecialized()
-
def
collect[B](otherwise: String)(f: PartialFunction[A, B]): RowParser[B]
Returns parser which collects information from already parsed row data using
f
.Returns parser which collects information from already parsed row data using
f
.- otherwise
Message returned as error if nothing can be collected using
f
.- f
Collecting function
-
def
compose[A](g: (A) ⇒ Row): (A) ⇒ SqlResult[A]
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- def flatMap[B](k: (A) ⇒ RowParser[B]): RowParser[B]
-
def
map[B](f: (A) ⇒ B): RowParser[B]
Returns a parser that will apply given function
f
to the result of this first parser.Returns a parser that will apply given function
f
to the result of this first parser. If the current parser is not successful, the new one will return encountered Error.- f
Function applied on the successful parser result
import anorm.{ RowParser, SQL, SqlParser } val parser: RowParser[Int] = SqlParser.str("col").map(_.length) // Prepares a parser that first get 'col' string value, // and then returns the length of that
-
def
single: ResultSetParser[A]
Returns a result set parser expecting exactly one row to parse.
Returns a result set parser expecting exactly one row to parse.
val b: Boolean = SQL("SELECT flag FROM Test WHERE id = :id"). on("id" -> 1).as(scalar[Boolean].single)
- See also
#singleOpt
-
def
singleOpt: ResultSetParser[Option[A]]
Returns a result set parser for none or one parsed row.
Returns a result set parser for none or one parsed row.
val name: Option[String] = SQL("SELECT name FROM Country WHERE lang = :lang") .on("lang" -> "notFound").as(scalar[String].singleOpt)
-
def
toString(): String
- Definition Classes
- Function1 → AnyRef → Any
- def |[B >: A](p: RowParser[B]): RowParser[B]
-
def
~[B](p: RowParser[B]): RowParser[~[A, B]]
Combines this parser on the left of the parser
p
given as argument.Combines this parser on the left of the parser
p
given as argument.- p
Parser on the right
val populations: List[String ~ Int] = SQL("SELECT * FROM Country").as((str("name") ~ int("population")).*)
-
def
~>[B](p: RowParser[B]): RowParser[B]
Combines this current parser with the one given as argument
p
, if and only if the current parser can first/on left side successfully parse a row, without keeping these values in parsed result.Combines this current parser with the one given as argument
p
, if and only if the current parser can first/on left side successfully parse a row, without keeping these values in parsed result.import anorm.{ SQL, SqlParser }, SqlParser.{ int, str } val String = SQL("SELECT * FROM test"). as((int("id") ~> str("val")).single) // row has to have an int column 'id' and a string 'val' one, // keeping only 'val' in result