我使用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)
}
问题是描述的列是String,并且将在数据库中映射为varchar(254)。但实际上,这个专栏可能非常非常长,我的意思是可能有1000-3000个字符。如何手动将其映射到Datamodel中的文本?
这应该适用于PostgreSQL
:
def profile=column[String]("Profile", O.DBType("TEXT"))
或者你可以建立一个自定义的TypeMapper
,我从来没有建立过,但周围有很多帖子,比如这个SO问题或这个问题。
希望能有所帮助。