如何将 Postgres 中的文本 ARRAY 映射到 Scala Slick

How to map text ARRAY in Postgres to Scala Slick

我的 postgres 中有以下列 table:

ALTER TABLE my_table
    ALTER COLUMN test_field TYPE text ARRAY USING test_field::text ARRAY

当我直接从我的 postgres table 重新生成 Slick 模式时,我有以下内容

*  @param test_field Database column test_field SqlType(_text), Length(2147483647,false), Default(None) */

  case class MyTable(id: java.util.UUID, created: Option[java.sql.Timestamp] = None, test_field: Option[String] = None)

  /** GetResult implicit for fetching MyTable objects using plain SQL queries */

  implicit def GetResultTable(implicit e0: GR[java.util.UUID], e1: GR[Option[java.sql.Timestamp]], e2: GR[String] = GR{
    prs => import prs._
    MyTable(<<[java.util.UUID], <<?[java.sql.Timestamp],<<?[String])
  }

我不确定为什么该字段未被识别为 Option[Array[String]],我哪里出错了?

谢谢

我使用了 slick-pg 并创建了我自己的 MyPostgresProfile,详见项目的自述文件。事实证明,在 Postgres 中处理 text[] 的 Slick 存在问题,尽管 slick-pg 确实支持数组:

[https://github.com/tminglei/slick-pg/tree/master/core/src/main/scala/com/github/tminglei/slickpg/array][1]

在生成table时,这样的数组实际上被看作是Seq

我最终将 Postgres 中的数据类型从 Array 更改为 jsonb,插件使用 JValue.

处理得很好