如何手动映射字符串到PostgreSQL的文本,而不是仅仅为varchar(254)?

use*_*909 5 postgresql scala slick slick-2.0

我使用slick2 + postgresql 9.3 + playframework 2

我的数据模型是:

class Page(tag:Tag) extends Table[(Long,Long, String,String,String, Option[Long], Option[Long])](tag, "Page"){
  def id=column[Long]("ID", O.PrimaryKey)
  def subId=column[Long]("subject")
  def title=column[String]("Title", O.NotNull)
  def describe=column[String]("Describe")
  def profile=column[String]("Profile")
  def icon=column[Long]("icon")
  def resId=column[Long]("Picture")
  def * = (id, subId,title, describe, profile,icon.?, resId.?)
  def page_sub=foreignKey("PA_SU_FK", subId, subject)(_.id)
  def page_res=foreignKey("PA_RE_FK", resId, resource)(_.id)

}
Run Code Online (Sandbox Code Playgroud)

问题是列描述是字符串和将映射在数据库的varchar(254).但实际上,这个专栏可能很长,我的意思是它可能有1000-3000个字符.如何手动将其映射到Datamodel中的文本?

End*_*Neu 3

这应该适用于PostgreSQL

def profile=column[String]("Profile",  O.DBType("TEXT"))
Run Code Online (Sandbox Code Playgroud)

或者你可以构建一个自定义的TypeMapper,我从来没有构建过,但周围有很多帖子,比如这个SO问题或这个问题。

希望能帮助到你。