首页 文章

如何在Slick中将空值映射到Seq.empty

提问于
浏览
0

我通过将它们与分隔符连接,将值列表编码到单个数据库列 . 这工作正常,除非列表为空 . 在这种情况下,数据库列用空字符串填充,当映射回来时,这给了我一个Seq(“”)而不是Seq.empty .

implicit val SeqUriColumnType = MappedColumnType.base[Seq[Uri], String](
  p => p.map(_.toString).mkString(","),
  s => if (s.isEmpty) Seq.empty else s.split(",").map(Uri(_)).toSeq
)

我've worked around this by using an if statement but that feels odd. I'尝试使用 MappedColumnType.base[Seq[Uri], Option[String]] ,但是没有编译 . 我认为它还需要我使用 Seq 的选项,并且's not what I' m正在寻找 .

本质上我想要一个空的Seq在db中产生一个空值,并在检索时再次返回一个空的Seq . 我该怎么做呢?

1 回答

  • 0

    哦,如果他们处理选项,你可以从最后删除 orNull :) . 另外,请注意,这里您并没有真正将集合转换为选项 . 您正在将String转换为选项 . 它会让它变得更好吗? :)

相关问题