如何将 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
.
处理得很好
我的 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
.