我的模式中有一个Postgres'json'列。这是我代码中的列映射:
def my_col = column[Option[String]]("my_col")
这不起作用,插入时得到的堆栈跟踪显示:
我也试过:
def my_col = column[Option[String]]("my_col", O.SqlType("json"))
也会产生同样的错误。
因此,我发现slick-pg
解决方案是实现此功能的更好方法。如果您所需要的只是代码中的JSON支持,即在使用Postgres的JSON列类型时,您只需要将一个DB列表示为PlayJSValue
,那么您只需要编写一个配置文件,该配置文件混合了slick-pg
包中的适当功能。
libraryDependencies += "com.github.tminglei" %% "slick-pg" % "0.18.0"
libraryDependencies += "com.github.tminglei" %% "slick-pg_play-json" % "0.18.0"
import com.github.tminglei.slickpg._
import slick.basic.Capability
import slick.jdbc.JdbcCapabilities
trait PostgresProfile extends ExPostgresProfile with PgPlayJsonSupport {
def pgjson = "jsonb"
override protected def computeCapabilities: Set[Capability] =
super.computeCapabilities + JdbcCapabilities.insertOrUpdate
override val api = PostgresJsonSupportAPI
object PostgresJsonSupportAPI extends API with JsonImplicits
}
object PostgresProfile extends PostgresProfile
因此,您将需要扩展HasDatabaseConfigProvider
,但使用在上面第2步中定义的特征对其进行参数化,例如。
class MyEntityRepository @Inject() (
protected val dbConfigProvider: DatabaseConfigProvider
... // plus whatever other components you need, probably an ExecutionContext
) extends HasDatabaseConfigProvider[PostgresProfile] {
import PostgresProfile.api._
...
}
这是容易的部分。在上面的类中,MyEntityRepository
编写一个扩展Table
的私有或包私有光滑类,并简单地定义如下所示的列:
def someColumnName = column[JsValue]("some_column_name")
就这样!
Slick 是 TypeSafe 推出的 Scala 数据库访问库。开发者可以使用 Scala 语言风格来编写数据查询,而不是用 SQL,示例代码: object Coffees extends Table[(String, Int, Double)]("COFFEES") { def name = column[String]("COF_NAME", O.PrimaryKey) def su
我有一个特定的要求,其中,我需要检查空的数据文件。如果为空,则填充默认值。这是我尝试过但没有得到我想要的东西。 这个想法是,如果df不是空的,就得到它。如果为空,则填写默认值为零。这似乎不起作用。以下是我得到的。 请帮忙。
我试图在Spark中创建成批的行。为了保持发送到服务的记录数量,我想对项目进行批处理,这样我就可以保持数据发送的速率。对于, 对于给定的我想创建 例如,如果输入有100条记录,那么输出应该像一样,其中每个应该是记录(Person)的列表。 我试过了,但没用。 我想在Hadoop集群上运行此作业。有人能帮我吗?
主要内容:实例Scala 与 Java有着相同的数据类型,下表列出了 Scala 支持的数据类型: 数据类型 描述 Byte 8位有符号补码整数。数值区间为 -128 到 127 Short 16位有符号补码整数。数值区间为 -32768 到 32767 Int 32位有符号补码整数。数值区间为 -2147483648 到 2147483647 Long 64位有符号补码整数。数值区间为 -9223372036
Scala 与 Java有着相同的数据类型,下表列出了 Scala 支持的数据类型: 数据类型 描述 Byte 8位有符号补码整数。数值区间为 -128 到 127 Short 16位有符号补码整数。数值区间为 -32768 到 32767 Int 32位有符号补码整数。数值区间为 -2147483648 到 2147483647 Long 64位有符号补码整数。数值区间为 -9223372036
我正在尝试在postgress列中插入json,这是json 但是在光滑的一代中,它产生了如下的结果: val taskvariables:rep[option[String]]=column[option[String]](“taskvariables”,o.length(2147483647,varying=false),o.default(None)) 为了插入它,我编写了如下代码: 它在插