the value to be passed as a JSON parameter
the Play writes to be used to serialized the value as JSON
import play.api.libs.json._ import anorm._, postgresql._ case class Foo(bar: String) implicit val w: Writes[Foo] = Json.writes[Foo] val value = Foo("lorem") def foo(implicit con: java.sql.Connection) = SQL"INSERT INTO test(id, json) VALUES(${"bar"}, ${asJson(value)})". executeUpdate()
the Play reader to be used from the selected JSONB value
import play.api.libs.json.Reads import anorm._, postgresql._ case class Foo(bar: String) def foo(implicit con: java.sql.Connection, r: Reads[Foo]): Foo = SQL"SELECT json FROM test". as(SqlParser.scalar(fromJson[Foo]).single)
import play.api.libs.json.JsObject import anorm._, postgresql._ def foo(implicit con: java.sql.Connection) = SQL"SELECT json FROM test".as(SqlParser.scalar[JsObject].single)
import play.api.libs.json.JsValue import anorm._, postgresql._ def foo(implicit con: java.sql.Connection) = SQL"SELECT json FROM test".as(SqlParser.scalar[JsValue].single)
Allows to pass a JsValue
as parameter to be stored as PGobject
.