use*_*909 2 scala type-conversion slick slick-2.0
因为MySQL数据库不支持Arrays,我想将字符串列表映射为类似List("facebook","linkedin","local")字符串"facebook, linkedin, local".
我想用slick 2.0进行双向映射,但我不知道如何编写实例TypeMapper.
谁能为我提供一个例子?
这是在官方文档光滑记录在这里.
你可以使用MappedColumnType.base[T, U](tmap: (T) ? U, tcomap: (U) ? T)(参见scaladoc).
它需要两个函数参数,tmap并tcomap在两个方向上进行映射.
对于您的特定用例,可以这样实现:
implicit val stringListMapper = MappedColumnType.base[List[String],String](
list => list.mkString(","),
string => string.split(',').toList
)
Run Code Online (Sandbox Code Playgroud)
请注意,这不安全,因为如果字符串中包含逗号,则映射不是双射的.你必须确保没有或以某种方式逃脱它们.我把它留给你.